uniapp 苹果支付流程

1.配置文件中勾中Apple应用内支付

2.调用 plus.payment.getChannels 来获取支付通道

iphonepay() {const that = thisuni.showLoading({title: '检测支付环境...',mask: true})plus.payment.getChannels((channels) => {for (var i in channels) {// 判断是否苹果支付if (channels[i].id === 'appleiap') {that.iapChannel = channels[i]that.requestOrder()}}})}

3.调用 上一步拿到对象的requestOrder方法 该方法需要传入三个参数 requestOrder(‘苹果内购商品id’,成功回调,失败回调) 拿到订单数据 拿到订单数据的商品id

requestOrder() {const that = this// ['xxxxx'] 是平台申请拿到的内购商品的id that.iapChannel.requestOrder(['xxxxxx','xxxxxx'], function(event) {uni.hideLoading()console.log(event)for (var index in event) {var OrderItem = event[index]console.log(OrderItem)that.topay(OrderItem.productid)}
}, function(erroemsg) {uni.hideLoading()uni.showToast({title: "获取支付通道失败:" + errormsg.message,icon: 'none'})})}

4.最后调用uni.requestPayment 拿到后端接口需要的交易id 校验体

  • 使用uni.requestPayment时需要传入的orderInfo 是Object对象类型
         topay(id) {const that = thisuni.showLoading({title: '充值中请勿离开',mask: true})uni.requestPayment({provider: 'appleiap',orderInfo: {productid: id},success: (res => {uni.hideLoading()const orderId = this.orderId //这个订单id 是由后端返回的const transactionId = res.transactionIdentifier //交易idconst payload = res.transactionReceipt //校验体upayfor({transactionId,payload,orderId}).then(res => {console.log(res)uni.showToast({title: '充值成功'})that.getUserInfo()})}),fail: (e) => {uni.hideLoading()uni.showModal({content: "支付失败",showCancel: false})}
})

官方文档 https://uniapp.dcloud.io/api/plugins/payment?id=orderinfo

第一次开发这个功能,有地方还理解不够,记录一下。整个过程中有遇到-100的问题 卡了半天 结果是沙盒测试申请的东西没有补充完整

感谢原文博主 :https://blog.csdn.net/wangwangli6/article/details/104892562/

uniapp实现苹果支付流程相关推荐

  1. 苹果支付流程以及服务端php验证

    苹果支付和常规国内的支付流程完全不一样,流程如下: 步骤如下: 1.上架产品 首先需要在苹果网站上架对应的app产品,有对应的id和价格,名称等数据 2.前端拉起商品列表 用户登录app后,进入商品购 ...

  2. uniapp 苹果支付注意事项(前端)

    <script> let iapChannel = null, productId = 'Recharge_1',//默认苹果内购商品ID productIds = ['Recharge_ ...

  3. ios 自己服务器 苹果支付_iOS游戏开发二:苹果内支付的流程(In-App Purchases)

    苹果应用内支付流程 一 服务器模式流程如下: 1. 程序向服务器发送一个请求 以抓取一份包含所有商品ID的列表 2. 服务器返回包含所有商品ID标识符的列表 3. 程序将所有商品ID列表发送到App ...

  4. uniapp 实现苹果应用内支付(可直接复制使用)

    先根据uniapp官方链接,按步骤实行(了解官方操作,方便出现BUG不懵逼,也可直接复制下方代码直接使用) 如果沙箱环境遇到疑问可以参考 根据uniapp官方demo并加以改正 ApplePay.js ...

  5. 苹果公司开发者账号申请与支付流程

    Apple开发者账号介绍 1.开发者账号共有三种类型:个人级.公司级.企业级.公司和企业都属于"组织"大类,可多人协作.在苹果的开发者平台登录后,可在People界面邀请其他人员协 ...

  6. 苹果支付:如何解决沙盒环境下获取可恢复购买项为空

    在传统手游开发中免不了和苹果支付打交道,而且苹果也会有各种奇奇怪怪的问题和BUG . 曾经有一次某一个游戏出现了调单问题,现象如下(我有点懒,不想画泳道图或者时序图): 客户端拉起支付付款成功,OC底 ...

  7. 海外SDK之----------苹果支付

    哈喽,大家好,么么哒!今天天气真是异常的热啊!出去走走都要热晕了,今天呢就开始我们的苹果支付啦,下面开始. 苹果支付分2种,1是什么银联类型的支付 2是应用内支付( In-Aopp Purchase ...

  8. java 服务端验证苹果支付applepay账单

    支付流程 前端支付完,付款成功 苹果会返回一个receipt-data,大概长这个样子{"receipt-data" : "MIIaYAYJKoZIhvcNAQcC--& ...

  9. 一般情况下UniApp打包上线APP流程

    UniApp 看官方展示现可以实现一套代码发布10个平台. 小程序端打包流程都很简单. 小编主要用来发布Android版,iOS版. Android版通过 "云端APP打包" 生成 ...

  10. 关于苹果支付ApplePay的一些个人总结

    再过几天,苹果支付ApplePay就要正式进军大陆了!作为第一批的开发者及使用者,总体来说,不管是在使用上,还是在开发上都挺简单上手的.身为一个开发者,今天在这里主要跟大家分享一下,ApplePay关 ...

最新文章

  1. TensorRT Samples: MNIST API
  2. some learning
  3. Python之pandas:pandas中to_csv()、read_csv()函数的index、index_col(不将索引列写入)参数详解之详细攻略
  4. poj-1845 Sumdiv nyoj - 928 小M的因子和
  5. 服务器raid卡装虚拟机,DELLR730服务器阵列卡配置、VMware安装、WIN2008安装.docx
  6. 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
  7. Mac OS使用技巧之十五:快捷方便的Mini Dock
  8. csredis-in-asp.net core理论实战-主从配置、哨兵模式
  9. 理解Spring框架中Bean的作用域
  10. 【设计模式:单例模式】单例模式01:饿汉模式
  11. Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
  12. 电脑数据恢复,哪种方法靠谱?
  13. 10.Qt元素QTreeWidgetItem
  14. SDPT3 4.0版:半正定二次线性规划的MATLAB软件包
  15. 工作中经常遇到的232、485、TTL信号
  16. c# 通过查看注册表的方式来判断电脑安装office的版本
  17. xlsx文件 wps 可以打开 excel 打不开
  18. 鸟枪换炮---IDEA
  19. 计算机无法识别华为m3,华为平板M3青春版10.1英寸平板电脑没法充电的原因是什么_华为平板电脑没法充电故障分析...
  20. 被认证的虫子,吃着才放心 | 独家

热门文章

  1. Python简易图片批量压缩程序
  2. PSINS源码阅读—STIM300/GNSS组合导航
  3. 硬件工程师和软件工程师哪个更有前途?我会告诉你嵌入式工程师更有前途
  4. 搭窝---开篇语---爆笑语录
  5. C# winform cefsharp 截取网页元素图片
  6. 2021-04-20论文——视网膜识别技术作为绵羊生物识别方法的评价
  7. 什么是本格推理?有什么推荐作品?
  8. 如何删除“我的电脑”、“此电脑”中坚果云图标--三种方法(2020年的可行方案)
  9. J2EE进阶之JSP和EL表达式 十二
  10. Android Studio 快捷用法