Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
5f15a09d
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5f15a09d
编写于
7月 08, 2022
作者:
D
doujingxuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
iap 苹果应用内支付5+ 使用说明
上级
65816470
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
33 deletion
+12
-33
docs/tutorial/app-payment-aip.md
docs/tutorial/app-payment-aip.md
+12
-33
未找到文件。
docs/tutorial/app-payment-aip.md
浏览文件 @
5f15a09d
...
...
@@ -17,8 +17,12 @@
> 提示:需提交云端打包后才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115);本地离线打包参考[Apple应用内支付模块配置](https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/pay?id=%e8%8b%b9%e6%9e%9c%e5%ba%94%e7%94%a8%e5%86%85%e8%b4%ad%e6%94%af%e4%bb%98)
### 应用内发起支付
### uni-app项目 苹果应用内支付支付用法
*
uni-app项目 用法请转至
[
苹果应用内支付
](
https://uniapp.dcloud.io/api/plugins/payment.html#iap
)
### 5+应用 苹果应用内支付
#### 应用内发起支付
苹果应用内支付不需要从服务器生成订单,需在发起支付前调用
[
requestOrder
](
https://www.html5plus.org/doc/zh_cn/payment.html#plus.payment.PaymentChannel.requestOrder
)
获取订单信息。
#### 获取应用内支付对象
...
...
@@ -54,9 +58,6 @@ iap.requestOrder(ids, function(e) {
```
#### 发起支付
-
uni-app项目
调用
[
uni.requestPayment(OBJECT)
](
https://uniapp.dcloud.io/api/plugins/payment?id=requestpayment
)
发起支付,OBJECT参数中provider属性值固定为
`appleiap`
、orderInfo属性值为订单对象
-
5+ App项目
调用
[
plus.payment.request(channel, orderInfo, successCB, errorCB)
](
https://www.html5plus.org/doc/zh_cn/payment.html#plus.payment.request
)
发起支付, channel参数为应用内支付对象,orderInfo参数为订单对象
##### 订单对象参数说明
...
...
@@ -66,35 +67,10 @@ Object对象类型
| :--- | :--- | :--- | :--- |
| productid | String | 是 | App Store Connect 配置的内购买项目产品ID(productId) |
| username | String | 否 | 用户标识 |
|
optimize | Boolean | 否 | 是否优化解决丢掉问题
|
|
manualFinishTransaction | Boolean | 否 | 3.5.1+ 支持,手动关闭订单,值为 false 时支付完成后自动关闭订单,true时不关闭订单,需要在合适的时机调用 finishTransaction 关闭订单。建议设置为 true, 默认值为 false 是为了向下兼容
|
| password | String | 否 | App专用共享密钥(内购商品为自动续期订阅类时必传) |
##### 示例代码
-
uni-app项目
```
js
var
restoreFlag
=
true
;
uni
.
requestPayment
({
provider
:
'
appleiap
'
,
orderInfo
:
{
productid
:
productId
,
username
:
"
appusername
"
,
// 用户标识
optimize
:
true
// 设置 optimize: true 解决丢单问题
},
success
:
(
e
)
=>
{
// 支付成功清除标记 restoreFlag = false
// 支付成功,result 为 IAP商品交易信息对象 IAPTransaction 需将返回的支付凭证传给后端进行二次认证
restoreFlag
=
false
;
},
fail
:
(
e
)
=>
{
// 支付失败的时候需要调用一下 restoreComplateRequest 方法
restoreComplateRequest
();
},
complete
:
()
=>
{
console
.
log
(
"
payment结束
"
);
}
});
```
-
5+ App项目
```
js
// restoreFlag 标记,用于判断在页面显示的时候是否需要调用 restoreComplateRequest 方法
...
...
@@ -102,7 +78,6 @@ var restoreFlag = true; // 调用支付接口时标记 restoreFlag = true , 实
plus
.
payment
.
request
(
iap
,
{
productid
:
"
商品id
"
,
username
:
"
appusername
"
,
// 用户标识
optimize
:
true
,
// 设置 optimize: true 解决丢单问题,已废弃,推荐使用 manualFinishTransaction
manualFinishTransaction
:
true
// 3.5.1+ 支持,设置此参数后需要开发者主动关闭订单,参见下面的关闭订单方法 finishTransaction()
},
function
(
result
){
restoreFlag
=
false
;
// 支付成功清除标记 restoreFlag = false
...
...
@@ -116,7 +91,9 @@ plus.payment.request(iap, {
#### 恢复购买
```
js
function
restoreComplateRequest
()
{
iap
.
restoreComplateRequest
({},
function
(
results
){
iap
.
restoreComplateRequest
({
manualFinishTransaction
:
true
// 3.5.1+ 支持,设置此参数后需要开发者主动关闭订单,参见下面的关闭订单方法 finishTransaction()
},
function
(
results
){
// results 格式为数组存放恢复的IAP商品交易信息对象 IAPTransaction,需要将返回的支付凭证传给后端进行二次认证
});
}
...
...
@@ -152,7 +129,9 @@ function finishTransaction() {
```
js
onShow
()
{
if
(
restoreFlag
)
{
restoreComplateRequest
();
restoreComplateRequest
(
);
}
}
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录