From 65f1d89a9db77851f9a3e7d4cd0dc73c7440ad90 Mon Sep 17 00:00:00 2001
From: VK <370725567@qq.com>
Date: Thu, 1 Dec 2022 17:45:03 +0800
Subject: [PATCH] =?UTF-8?q?update=20uni-pay.md=20=E6=96=B0=E5=A2=9Eios?=
=?UTF-8?q?=E5=86=85=E8=B4=AD=E6=94=AF=E4=BB=98=E6=96=87=E6=A1=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/uniCloud/uni-pay.md | 220 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 219 insertions(+), 1 deletion(-)
diff --git a/docs/uniCloud/uni-pay.md b/docs/uniCloud/uni-pay.md
index 225c75543..7fe787357 100644
--- a/docs/uniCloud/uni-pay.md
+++ b/docs/uniCloud/uni-pay.md
@@ -51,7 +51,7 @@
+ 关闭订单
+ 获取当前支持的支付方式
+ 获取当前支付用户的openid
- + 苹果内购支付(暂未上线,敬请期待)
+ + ios内购支付
+ 支付统计(暂未上线,敬请期待)
+ 收款趋势
+ 转换漏斗分析
@@ -261,6 +261,15 @@ module.exports = {
"alipayPublicCertPath": path.join(__dirname, 'alipay/alipayCertPublicKey_RSA2.crt'), // 支付宝公钥路径
"alipayRootCertPath": path.join(__dirname, 'alipay/alipayRootCert.crt'), // 支付宝根证书路径
}
+ },
+ // ios内购相关
+ "appleiap" :{
+ // ios内购支付
+ "app": {
+ "password": "", // App 专用共享密钥,App 专用共享密钥是用于接收此 App 自动续期订阅收据的唯一代码。如果您要将此 App 转让给其他开发者或不想公开主共享密钥,建议使用 App 专用共享密钥。非自动续订场景不需要此参数
+ "timeout": 10000, // 请求超时时间,单位:毫秒
+ "sandbox": false, // 是否是沙箱环境(本地调试ios走的是沙箱环境,故要设置为true,正式发布后,需要设置为false)
+ }
}
}
```
@@ -653,6 +662,33 @@ module.exports = {
```
+#### ios内购支付@config-appleiap-app
+
+对应支付配置的节点是 `appleiap.app`
+
+```js
+const fs = require('fs');
+const path = require('path')
+module.exports = {
+ // 统一 - 支付回调地址,格式为 "服务空间ID":"URL化地址"
+ "notifyUrl": {
+ // 本地开发环境-支付回调地址
+ "b267e273-19a7-4288-99c7-f6f27f9c5b77": "https://b267e273-19a7-4288-99c7-f6f27f9c5b77.bspapp.com/uni-pay-co",
+ // 线上正式环境-支付回调地址
+ "499e2a37-0c77-418a-82aa-3e5820ecb057": "https://499e2a37-0c77-418a-82aa-3e5820ecb057.bspapp.com/uni-pay-co",
+ },
+ // ios内购相关
+ "appleiap" :{
+ // ios内购支付
+ "app": {
+ "password": "", // App 专用共享密钥,App 专用共享密钥是用于接收此 App 自动续期订阅收据的唯一代码。如果您要将此 App 转让给其他开发者或不想公开主共享密钥,建议使用 App 专用共享密钥。非自动续订场景不需要此参数
+ "timeout": 10000, // 请求超时时间,单位:毫秒
+ "sandbox": false, // 是否是沙箱环境(本地调试ios走的是沙箱环境,故要设置为true,正式发布后,需要设置为false)
+ }
+ }
+}
+```
+
## 集成到自己项目的教程@install
在对接自己的项目之前,建议先[跑通示例项目](#rundemo),能跑通示例项目,代表你的配置和证书一定是正确的,然后再将`uni-pay`集成到你自己的项目中。
@@ -1782,6 +1818,179 @@ await uniIdCo.getOpenid({
|-----------------|---------|---------------------------|
| openid | string | openid |
+
+### ios内购支付@appleiap
+
+**概述**
+
+IAP 全称:In-App Purchase,是指苹果 App Store 的应用内购买,是苹果为 App 内购买虚拟商品或服务提供的一套交易系统。
+
+适用范围:在 App 内需要付费使用的产品功能或虚拟商品/服务,如游戏道具、电子书、音乐、视频、订阅会员、App的高级功能等需要使用 IAP,而在 App 内购买实体商品(如淘宝购买手机)或者不在 App 内使用的虚拟商品(如充话费)或服务(如滴滴叫车)则不适用于 IAP。
+
+简而言之,苹果规定:适用范围内的虚拟商品或服务,必须使用 IAP 进行购买支付,不允许使用支付宝、微信支付等其它第三方支付方式(包括Apple Pay),也不允许以任何方式(包括跳出App、提示文案等)引导用户通过应用外部渠道购买。
+
+**示例代码**
+
+注意:只能使用uni-pay支付组件发起
+
+```js
+// 发起ios内购支付
+this.$refs.uniPay.createOrder({
+ provider: "appleiap", // 支付供应商(这里固定未appleiap,代表ios内购支付)
+ order_no: "20221027011000101001010", // 业务系统订单号
+ out_trade_no: "2022102701100010100101001", // 插件支付单号
+ type: "appleiap", // 支付回调类型(可自定义,建议填写appleiap)
+ productid: "io_dcloud_hellouniapp_pay_like6", // ios内购产品id(仅ios内购生效)
+ // 自定义数据
+ custom: {}
+});
+```
+
+[点击查看ios内购注意事项](#tips-appleiap)
+
+完整ios内购支付示例代码
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
## 注意事项@tips
### 微信公众号@tips-wxpay-jsapi
@@ -1826,6 +2035,15 @@ APP支付除了配置uni-pay的支付配置外,还需要打包时添加支付
同时,还需要打自定义基座(包名需要和开放平台下填写的一致),且你在开放平台下的这个应用必须通过审核才可以。(比如微信开放平台下的APP应用显示通过审核才可以)
+### ios内购支付@tips-appleiap
+
+1. ios内购支付需勾选App模块配置中的Apple应用内支付
+2. 需要打ios自定义基座
+3. 需要注册ios开发者账号,且交了年费(688元/年)
+4. 需要在ios开发者平台添加内购商品,并获得商品id
+5. ios沙箱测试时,需要先在ios开发者平台添加沙箱测试账号,同时你的测试手机上需要登录ios沙箱账号
+6. 目前hbx版本热刷新会导致ios支付无法正常调用,因此每次修改完代码保存后,需要先关闭手机App,然后hbx重启项目,再打开手机app。(后面HBX会修复此问题)
+
## 全局错误码@errorcode
| 错误模块 | 错误码 | 说明 |
--
GitLab