#申请流程

官方文档 官方这个 可以看对应参数是啥 就直接自己去看 我把我们遇到的问题和测试通过的代码 放下面了

uni.requestPayment(OBJECT) | uni-app官网

使用苹果开发者账号登录 [App Store Connect](https://appstoreconnect.apple.com),在应用的功能选项卡页面,添加 App 内购项目。注意:
- 内购项目的各信息需要填写完整,然后保存,此时内购项目的状态应该是准备提交,当提交应用通过审核后,状态则变为已批准
- 测试时,建议使用测试证书打一个自定义的 iOS 基座进行测试
- 在应用 TestFight 的选项卡添加 App Store Connect 用户,测试支付时可以使用此用户帐号进行测试

#注意事项

1、mainfest的payment支付apple应用内支付需要打钩,然后苹果支付不能勾选支付宝支付和微信支付不然就上不去,支付时候 还会有问题

2、苹果后台开发者

https://developer.apple.com/account/resources/certificates/list

需要把打包的配置文件勾上苹果支付

3、申请支付参数

https://appstoreconnect.apple.com

内购买项目添加支付的参数弄的目的是为了设置productid

(这里必须注意如果设置错了 重新设置的产品id不要和之前的一样 不然就会有问题的)

这个参数需要先上一个版本的app后才能申请让他审核,审核后才可以测试

不然就会支付成功不回调的问题

5、https://appstoreconnect.apple.com/access/users

沙盒测试员添加测试账号

APP必须打测试包,证书勾选了苹果应用内支付才可以测试,

沙箱环境支付不会扣费的 可以放心测试

#支付流程

  1. 获取支付通道 (uni.getProvider)

  2. 通过支付通道获取产品列表 (iapChannel.requestProduct)

  3. 检查是否存在未关闭的订单 (iapChannel.restoreCompletedTransactions, 可选在合适的时机检查)

  4. 请求支付,传递产品信息 (uni.requestPayment)

  5. 客户端接收苹果返回的支付票据发送到服务器,在服务器请求苹果服务器验证支付是否有效

  6. 服务器验证票据有效后在客户端关闭订单 (iapChannel.finishTransaction)

#前端支付代码

//检查环境 that.iapChannel 这个自己定义
iphonepay() {let that = thisplus.payment.getChannels((res) => {let channel = res.find(i => i.id === 'appleiap')that.iapChannel = channel ? channel : nullthat.requestOrder()})},
//获取支付通道 使用所有的产品列表去检测 that.productIds 这个自己定义获取requestOrder() {let that = this// ['xxxxx'] 是平台申请拿到的内购商品的id that.iapChannel.requestOrder(that.productIds, function(event) {uni.hideLoading()console.log(event)}, function(erroemsg) {uni.hideLoading()uni.showToast({title: "获取支付通道失败:" + errormsg.message,icon: 'none'})})},//以上环境检测 完毕成功后 点击支付的时候 调用这个 设置that.productId,topay() {uni.showLoading({title: '充值中请勿离开',mask: true})let that = thisplus.payment.request(that.iapChannel, {productid: that.productId,optimize: true // 支付时设置 optimize: true  }, result => {// 支付成功回调// console.log("plus.payment.request-success--------------------",JSON.stringify(results));uni.showLoading({title: '支付成功,查询结果',mask: true})//调用后端接口更新that.getIosSaveMessage(JSON.stringify(result));}, e => {uni.hideLoading();that.$queue.showToast('支付失败');});},
//这个是后端自己写的接口 处理更新 金额的 吧获取的参数传后台校验getIosSaveMessage(receipt) {this.$Request.postT('/ios/isoPayApp?receipt=' + receipt + '&ordersId=' + this.ordersId).then(res => {uni.hideLoading();if (res.status == 0) {uni.showToast({title: '充值成功'})setTimeout(this.getwalletMoney(), 3000);}});},

uniapp应用内苹果支付怎么写?相关推荐

  1. uniapp ios内购支付问题(返回订单信息失败)

    先上代码 export default {components: {pHeader},data() {return {iap: null, // 支付通道ids: ['qiming100', 'mei ...

  2. 【iOS内购支付】Uniapp拉起苹果内购支付注意事项、实现步骤以及踩过的坑(手把手教程)

    前言 Hello!又是很长时间没有写博客了,因为最近又开始从事新项目,也是第一次接触关于uniapp开发原生IOS应用的项目,在这里做一些关于我在项目中使用苹果内购支付所实现的方式以及要注意的事项,希 ...

  3. Java接入苹果支付 – IAP支付 – IOS应用内支付- 完整版

    本页目录 IAP介绍 IAP参考连接 接入IAP快速导航: 准备工作 认证协议(签订银行信息) 设定商品价格 productId 上线设置 注册自己的沙箱账号: 添加沙箱账号 Java编码 大致编码如 ...

  4. 苹果支付返回html,苹果应用内支付,服务器端的实现

    苹果支付的逻辑如下首先客户端先请求苹果支付中心,支付中心返回给客户端一堆加密的数据. 然后客户端把这段加密的数据 base64之后传给后端. 最后由后端再去请求苹果支付中心来验证这次购买是否成功.验证 ...

  5. 苹果支付(内购项目)回调验证

    返回的加密参数-苹果支付返回的参数 $receipt_data="MIIbWQYJKoZIhvcNAQcCoIIbSjCCG0YCAQExCzAJBgUrDgMCGgUA......&quo ...

  6. 虚拟产品之苹果内购支付/支付宝支付/微信支付的区别

    1.支付宝支付: 同步通知,异步业务逻辑处理. 直接配置异步请求接口. 2.微信支付: 同步通知,异步业务逻辑处理. 直接配置异步请求接口. 3.苹果内购支付: 同步通知,同步业务逻辑处理. 需要io ...

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

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

  8. 苹果内购支付验签(php)

    苹果支付成功后走php验证支付结果 传receipt支付凭证 ( 自动订阅:所以需要增加一个参数: password: 秘钥, 就可以了, 但是官方文档说秘钥仅仅用在自动续订上面 大家叫后台加个验证, ...

  9. 苹果内购验证(熟称苹果支付回调)java版

    简介: 苹果支付是直接由ios客户端调起苹果支付并支付完成后,java后台提供一个支付回调接口供ios客户端进行同步回调,只需要在该接口进行进行验证苹果支付是否支付成功,跟微信支付和支付宝支付不一样, ...

  10. php 苹果支付验证,IOS苹果内购 PHP后端验证票据

    大体流程: 1.IOS端需要在iTunes Connect上面添加配置一些内购商品,并审核通过,每个内购商品有自己的唯一标识product_id. 2.PHP后端要有一套与之对应的内购商品.IOS应用 ...

最新文章

  1. webpack url-loader limit 转换部分资源为base64格式 其余不转换
  2. asp.net定点执行任务总结
  3. 用计算机计算性别,2018预测生男生女计算器 超准的怀孕计算器查生男生女
  4. linux 编译3g驱动_linux下使用3G拨号上网 以及3g驱动设置
  5. 这帮吃货程序猿,给阿里食堂来了一波骚操作
  6. 远程linux服务器,安装集成的xampp,本地电脑远程连接数据库进行使用
  7. nginx post请求超时_nginx的重试机制以及nginx常用的超时配置说明
  8. 智能家居系统通信方式,主要有以下四种
  9. centos 环境变量_Centos7:Linux环境变量配置文件
  10. SDOI2017 相关分析
  11. python turtle库下载_win10+python3.8安装turtle库
  12. 国二c语言成绩,计算机二级c语言通过率 c语言成绩查询时间及入口
  13. windows11无法添加朝鲜语输入法
  14. J3061《信息物理融合系统网络安全指南》
  15. svg适配低版本android,SVG-Android开源库——SVG图片兼容及性能优化解决方案
  16. 苹果平板做ppt方便吗_苹果手机和平板有什么软件可以做笔记
  17. Android 开源项目PhotoView遇到问题
  18. 世界各国产品认证标致详解CCC/CCEE/CCIB/CE/CQC/CSA/ETL/FCC/GS/UL/PCT/TUV/EMC/MPR/TCO/
  19. win10一键优化禁用缓存,禁用组件,
  20. 多种温湿度传感器外壳的简单介绍

热门文章

  1. 转专业申请麦吉尔大学计算机,加拿大大学转专业申请秘籍
  2. cdn加速的原理及步骤
  3. mac 打开网页慢_老Mac电脑打开网页慢怎么办
  4. DNN常见激活函数与其求导公式及来源
  5. expected primary-expression before ‘int‘
  6. 【音频编码】AAC编码之FDK AAC
  7. html 隐藏tbody,隐藏的tbody
  8. 【隔离的CAN通信接口-1Mbps】
  9. qte5编译dub.json
  10. educoder——面向对象程序设计java——实验实训——实验二 - 面向对象