UniAPP IAP支付流程

摘要:
启动uni.requestPayment({provider:成功:uni.showModal({content:失败:{uni.showMode({内容:完成:https://ask.dcloud.net.cn/article/497https:

1,plus.payment.getChannels(function(channels) {}) //获取所有支付方式

2,let iap = channels.find(x => x.id == 'appleiap');  //筛选ios内购 iap

3,iap.requestOrder([内购商品ID], function(event) {} //请求内购商品的订单,好像返回结果没啥实际作用,但必须要这一步操作(未检验)。

4,发起支付

                            uni.requestPayment({
                                provider: 'appleiap',
                                orderInfo: {
                                    productid: 内购商品ID
                                },
                                success: (e) => {
                      //支付成功的回调参数(iaptransaction) console.log(JSON.stringify(e));
uni.showModal({ content: "感谢您的赞助", showCancel: false }) }, fail: (e) => { uni.showModal({ content: "支付失败,原因为: " + e.errMsg, showCancel: false }) }, complete: () => { console.log("payment结束") } })
IAPTransaction {
    attribute IAPProductInfo payment;
    attribute String transactionDate;
    attribute String transactionIdentifier;
    attribute String transactionReceipt;
    attribute String transactionState;
}
	

  此时APP端步骤已完成

5,服务端校验

https://sandbox.itunes.apple.com/verifyReceipt

https://buy.itunes.apple.com/verifyReceipt

post {"receipt-data":支付成功返回中的transactionReceipt}

返回结果中包含状态0表示成功

另外 第5步还有服务器通知模式。

参考:

https://developer.apple.com/documentation/storekit/in-app_purchase/validating_receipts_with_the_app_store

https://gsl201600.github.io/2019/06/19/iOSIAP%E6%94%AF%E4%BB%98%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB%E4%B8%8E%E8%A7%A3%E5%86%B3/

https://www.jianshu.com/p/a8747442c38d

http://www.html5plus.org/doc/zh_cn/payment.html

https://ask.dcloud.net.cn/article/497

https://uniapp.dcloud.io/api/plugins/payment

免责声明:文章转载自《UniAPP IAP支付流程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用c#捕获windows的关机事件Oracle 查看表空间的大小及使用情况sql语句下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux服务器更换主板后,网卡识别失败的处理方法

1)现象说明公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不通了,进一步排查,重启网卡,提示之前的eth0和eth1网卡设备发现不了了,也就是说服务器主板更换后,之前的网卡设备都识别不了了! 主板更换后,重启并登陆服务器,发现之前的网卡设...

iOS UI-线程(NSThread)及其安全隐患与通信

一、基本使用 1.多线程的优缺点 多线程的优点 能适当提高程序的执行效率 能适当提高资源利用率(CPU、内存利用率) 多线程的缺点 开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能 线程越多,CPU在调度线程上的开销就越大 程序设计更加复杂:比如线程之间的通信、多线...

usdt钱包如何跟交易所对接?

步入庚子鼠年,加密数字货币交易所之间的竞争从未停歇。头部交易所在思考创新模式、创新玩法争夺资本和用户,中小型交易所日夜探索如何在赛道中坚持下来。加密数字经济作为一种新兴行业,也是一场全天候、不停歇的全球比赛,时时刻刻都会带来意想不到的挑战,但往往与机遇、收获并存。   对于一些中小型加密货币交易所来说,要想真正吸引并且留住更多的用户,核心是了解并满足用户需...

jdbc 连接数据库

1.什么是jdbc? 答:jdbc是java data base connection 的简写,即java与数据库的连接,是java与数据库之间进行数据交互的工具,书上解释为java访问数据库的API。jdbc是一个轻量级的连接封装,适用于多种数据库,如:oracle、sql server,mysql等等。hibernate则是对jdbc的再封装。 2、j...

MySQL插入重复数据

MySQL中批量insert into时防止更新插入重复数据去重的方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: INSERT IGNORE INTO `table_nam...

ES开启慢查询日志

默认情况,慢日志是不开启的。要开启它,需要定义具体动作(query,fetch 还是 index),你期望的事件记录等级( WARN、INFO、DEBUG、TRACE 等),以及时间阈值。 es有几种搜索模式,比如 query_then_fetch , 表示先从各个节点query到id,然后整合,再去各个节点拿具体数据 这是一个索引级别的设置,也就是说可以...