Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
265d7d26
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看板
提交
265d7d26
编写于
2月 10, 2023
作者:
DCloud_iOS_WZT
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add : iap subscription_offers(苹果内购订阅优惠促销功能)
上级
08d1950f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
65 addition
and
2 deletion
+65
-2
docs/api/plugins/payment.md
docs/api/plugins/payment.md
+20
-0
docs/tutorial/app-payment-aip.md
docs/tutorial/app-payment-aip.md
+45
-2
未找到文件。
docs/api/plugins/payment.md
浏览文件 @
265d7d26
...
...
@@ -241,7 +241,16 @@ uni.requestPayment({
|username|String||透传参数,一般用于标记订单和用户的关系,向苹果服务器二次验证票据时返回此字段|
|quantity|Number|1|购买数量,至少大于等于
`1`
|
|manualFinishTransaction|Boolean|false|3.5.1+ 支持,手动关闭订单,值为
`false`
时支付完成后自动关闭订单,
`true`
时不关闭订单,需要在合适的时机调用
`finishTransaction`
关闭订单。建议设置为
`true`
, 默认值为
`false`
是为了向下兼容|
| paymentDiscount | Object | 否 | 促销优惠(HBuilderX 3.7.0+ 手机系统iOS12.2+支持) |
##### 促销优惠参数说明
| 属性 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| offerIdentifier | String | 是 | 促销id |
| keyIdentifier | String | 是 | 密钥 |
| nonce | String | 是 | 唯一id (必须小写 24小时有效) |
| signature | String | 是 | 签名 |
| timestamp | Number | 是 | 创建证书的时间戳(毫秒 24小时有效) |
#### Product
...
...
@@ -252,6 +261,17 @@ uni.requestPayment({
|productid|String|产品id,在苹果开发者中心配置|
|price|Number|价格|
|pricelocal|String|币种,例如:
`zh_CN@currency=CNY`
|
|discount|Array|折扣信息(HBuilderX 3.7.0+ 手机系统iOS12.2+支持)|
##### Discount
| 属性 | 类型 | 说明 |
| :--- | :--- | :--- |
| price | Number | 促销价格 |
| periodUnit | String | 周期单位(day: 日,week: 周,month: 月,year: 年) |
| discountType | String | 优惠类型(introductory: 推介促销 subscription: 订阅促销) |
| promotionType | String | 促销类型(payAsYouGo: 随用随付,payUpFront: 预先支付,freeTrial: 免费试用) |
| code | String | 促销代码|
| units | Number | 促销期数 |
#### Transaction
...
...
docs/tutorial/app-payment-aip.md
浏览文件 @
265d7d26
...
...
@@ -45,7 +45,7 @@ plus.payment.getChannels(function(channels){
});
```
#### 获取
订单
信息
#### 获取
商品
信息
发起支付前需调用
[
requestOrder
](
https://www.html5plus.org/doc/zh_cn/payment.html#plus.payment.PaymentChannel.requestOrder
)
传入产品ID(productId)获取订单信息:
```
js
// ids 数组中的项为 App Store Connect 配置的内购买项目产品ID(productId)
...
...
@@ -59,10 +59,33 @@ iap.requestOrder(ids, function(e) {
console
.
log
(
'
requestOrder failed:
'
+
JSON
.
stringify
(
e
));
});
```
##### 商品信息参数说明
Object对象类型
| 属性 | 类型 | 说明 |
| :--- | :--- | :--- |
| title | String | 产品标题 |
| description | String | 产品描述 |
| productid | String | 产品id |
| price | Number | 价格 |
| pricelocal | String | 币种,例如: zh_CN@currency=CNY |
| discount | Array | 折扣信息(HBuilderX 3.7.0+ 手机系统iOS12.2+支持) |
##### 优惠促销信息参数说明
| 属性 | 类型 | 说明 |
| :--- | :--- | :--- |
| price | Number | 促销价格 |
| periodUnit | String | 周期单位(day: 日,week: 周,month: 月,year: 年) |
| discountType | String | 优惠类型(introductory: 推介促销 subscription: 订阅促销) |
| promotionType | String | 促销类型(payAsYouGo: 随用随付,payUpFront: 预先支付,freeTrial: 免费试用) |
| code | String | 促销代码|
| units | Number | 促销期数 |
#### 发起支付
调用
[
plus.payment.request(channel, orderInfo, successCB, errorCB)
](
https://www.html5plus.org/doc/zh_cn/payment.html#plus.payment.request
)
发起支付, channel参数为应用内支付对象,orderInfo参数为订单对象
使用订阅促销优惠参考
[
服务端生成签名
](
https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/subscriptions_and_offers/generating_a_signature_for_promotional_offers
)
##### 订单对象参数说明
Object对象类型
...
...
@@ -71,7 +94,18 @@ Object对象类型
| productid | String | 是 | App Store Connect 配置的内购买项目产品ID(productId) |
| username | String | 否 | 用户标识 |
| manualFinishTransaction | Boolean | 否 | 3.5.1+ 支持,手动关闭订单,值为 false 时支付完成后自动关闭订单,true时不关闭订单,需要在合适的时机调用 finishTransaction 关闭订单。建议设置为 true, 默认值为 false 是为了向下兼容 |
| password | String | 否 | App专用共享密钥(内购商品为自动续期订阅类时必传) |
| paymentDiscount | Object | 否 | 促销优惠(HBuilderX 3.7.0+ 手机系统iOS12.2+支持) |
##### 促销优惠参数说明
| 属性 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| offerIdentifier | String | 是 | 促销id(客户端获取) |
| keyIdentifier | String | 是 | 密钥(appstore后台获取) |
| nonce | String | 是 | 服务器生成的UUID(必须小写 24小时有效) |
| signature | String | 是 | 签名(服务器生成) |
| timestamp | Number | 是 | 服务器创建证书的时间戳(毫秒 24小时有效) |
##### 示例代码
```
js
...
...
@@ -81,6 +115,13 @@ plus.payment.request(iap, {
productid
:
"
商品id
"
,
username
:
"
appusername
"
,
// 用户标识
manualFinishTransaction
:
true
// 3.5.1+ 支持,设置此参数后需要开发者主动关闭订单,参见下面的关闭订单方法 finishTransaction()
paymentDiscount
:
{
offerIdentifier
:
""
,
keyIdentifier
:
""
,
nonce
:
""
,
signature
:
""
,
timestamp
:
0
}
// 3.7.0+ 支持
},
function
(
result
){
restoreFlag
=
false
;
// 支付成功清除标记 restoreFlag = false
// 支付成功,result 为 IAP商品交易信息对象 IAPTransaction 需将返回的支付凭证传给后端进行二次认证
...
...
@@ -188,4 +229,6 @@ iapChannel.restoreComplateRequest({
-
提前绑定支付方式可以有效避免丢单情况,示例:
`plus.runtime.openURL("https://apps.apple.com/account/billing"); //跳转AppStore绑定支付方式`
-
建议在每个接口调用前后添加打点日志收集,以便快速定位问题
-
[
推介促销优惠参考
](
https://developer.apple.com/cn/documentation/storekit/in-app_purchase/subscriptions_and_offers/implementing_introductory_offers_in_your_app/
)
-
[
订阅促销优惠参考
](
https://developer.apple.com/cn/documentation/storekit/in-app_purchase/subscriptions_and_offers/implementing_subscription_offers_in_your_app/
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录