Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
d781e772
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
205
Star
4
Fork
46
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
14
列表
看板
标记
里程碑
合并请求
16
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
14
Issue
14
列表
看板
标记
里程碑
合并请求
16
合并请求
16
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d781e772
编写于
7月 21, 2024
作者:
W
wanganxp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新虚拟支付文档
上级
cf75e239
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
8 deletion
+29
-8
docs/api/virtual-payment.md
docs/api/virtual-payment.md
+29
-8
未找到文件。
docs/api/virtual-payment.md
浏览文件 @
d781e772
# 虚拟支付
# 虚拟支付
虚拟支付有两个api:
1.
uni.requestVirtualPayment(options) :统一各平台的虚拟支付API,暂时只支持iOS平台。
一些平台,对非实物交易,比如vip会员、游戏道具,会进行支付分账。
2.
uni.createVirtualPaymentContext() :获取各平台虚拟支付的上下文对象,统一调用各自虚拟支付涉及api的入口, 暂时只支持iOS平台。
比如Apple要求在iOS上的所有虚拟商品交易必须且只能使用应用内支付IAP,比如微信小程序对网剧的虚拟支付要求。
此时开发者需要按照平台的规范开发虚拟支付。
本文档仅对各平台虚拟支付的API进行封装,具体业务仍需参考平台自身的文档。不符合平台要求会导致无法通过上架审核。
一般而言,开发者需要在平台后台上架虚拟商品,获取产品id,然后在客户端发起虚拟支付请求,传入产品id等参数,进行支付。
虚拟支付请求发起后,平台会要求手机用户付款,用户会付款到平台,平台再扣除分成后结算给开发者。
平台一般还会有查询订单、关闭订单等API,只不过有的是客户端API,有的是服务器API。
目前uni-app x中,虚拟支付有两个api:
1.
uni.requestVirtualPayment(options):发起虚拟支付请求。
2.
uni.createVirtualPaymentContext():获取各平台虚拟支付的上下文对象,在该对象上会挂载平台专有的一些API。当需要平台扩展功能时,则需要使用本API。
::: warning Note:
::: warning Note:
1.
iOS平台采用
新的框架StoreKit2实现IAP,目前仅支持iOS15.0
以上版本;
1.
iOS平台采用
Apple新提供的框架StoreKit2实现IAP,该框架目前仅支持iOS15.0及
以上版本;
2.
为了
规避Apple Store审核规则,请在iOS15.0版本以下,
关闭项目中的购买入口;
2.
为了
避免Apple Store审核不过,请在iOS15.0版本以下,
关闭项目中的购买入口;
:::
:::
支付不仅需要客户端开发,也需要服务器开发。
[
uni-pay
](
https://doc.dcloud.net.cn/uniCloud/uni-pay/uni-app.html
)
是一个云端一体的开源组件,下载这个插件,客户端和服务器代码都已封装好,开发者填入参数即可使用。
[
详见
](
https://doc.dcloud.net.cn/uniCloud/uni-pay/uni-app.html
)
## uni.requestVirtualPayment(options) @requestvirtualpayment
## uni.requestVirtualPayment(options) @requestvirtualpayment
...
@@ -15,7 +32,11 @@
...
@@ -15,7 +32,11 @@
<!-- UTSAPIJSON.requestVirtualPayment.compatibility -->
<!-- UTSAPIJSON.requestVirtualPayment.compatibility -->
uni.requestVirtualPayment是一个统一各平台的客户端虚拟支付API。
uni.requestVirtualPayment是一个统一各平台虚拟支付客户端API。
> 在uni-app中,iOS的IAP是放置在uni.requestPayment中的。但后期微信小程序独立了虚拟支付的API。考虑到Apple、微信、鸿蒙next都有虚拟支付,所以在uni-app x中,也独立出了单独的虚拟支付的API。
目前本API仅支持IAP。待uni-app x可以编译为微信小程序和鸿蒙hap时,也会支持相应的虚拟支付。
<!-- UTSAPIJSON.requestVirtualPayment.param -->
<!-- UTSAPIJSON.requestVirtualPayment.param -->
...
@@ -66,9 +87,9 @@ uni.requestVirtualPayment({
...
@@ -66,9 +87,9 @@ uni.requestVirtualPayment({
<!-- UTSAPIJSON.createVirtualPaymentContext.compatibility -->
<!-- UTSAPIJSON.createVirtualPaymentContext.compatibility -->
uni.createVirtualPaymentContext(): 用来创建各个平台虚拟支付上下文对象,暂时仅支持iOS平台。
uni.createVirtualPaymentContext(): 用来创建各个平台虚拟支付上下文对象,暂时仅支持iOS平台
IAP支付
。
### 对象持有
方法:
对象持有如下
方法:
1.
restoreCompletedTransactions(options): 获取苹果服务器已支付的交易列表
1.
restoreCompletedTransactions(options): 获取苹果服务器已支付的交易列表
2.
getUnfinishedTransactions(options): 获取苹果服务器已支付且未关闭的交易列表
2.
getUnfinishedTransactions(options): 获取苹果服务器已支付且未关闭的交易列表
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录