1、mainfest的payment支付(apple应用内支付需要打钩)
2、苹果后台开发者https://developer.apple.com/account/resources/certificates/list 需要把打包的配置文件勾上苹果支付,有一个是订阅,一个是支付,别勾错了。
3、申请支付参数,https://appstoreconnect.apple.com/apps/1615504939/appstore/addons?m=
App 内购买项目添加支付的参数(这个参数需要先上一个版本的app后才能申请让他审核,要是有一个版本app在上面还没审核,打电话或者留个邮件给他叫他审核)
4、代码,需要先初始化
initIAP() {uni.LTY.loaded()plus.payment.getChannels((channels) => {console.log(channels)for (var i in channels) {var channel = channels[i];// 获取 id 为 'appleiap' 的 channel if (channel.id == 'appleiap') {console.log("苹果")iap = channel;uni.LTY.loaded()// my_accurate_weather支付参数iap.requestOrder(['my_accurate_weather_', 'my_accurate_weather_'], (orderList) => {//必须调用此方法才能进行 iap 支付 console.log('requestOrder success666: ' + JSON.stringify(orderList))uni.LTY.loaded()}, (e) => {console.log('requestOrder failed: ' + JSON.stringify(e));uni.LTY.loaded()uni.LTY.toast('暂不支持苹果 iap 支付')});}}}, function(e) {console.log("获取iap支付通道失败:" + e.message);});},
applePay(para) {setTimeout(() => {uni.LTY.loaded()}, 2000)uni.requestPayment({provider: 'appleiap',orderInfo: {productid: para,username: 'myaccurateweather' + this.$store.getters.me.id, // 用户标识optimize: true // 设置 optimize: true 解决丢单问题 },/* orderInfo可传参数一览productid: (String 类型 )(必填) 商品的标识,你在苹果那里添加的商品标识 username: (String 类型 )(可选) 购买用户名称,我喜欢在这里传入订单号,这样支付成功时就可以获得订单号 quantity: (String 类型 )(可选) 商品数量,默认为 "1" optimize:(Boolean)(可选) HX 3.1.10 版本新增参数,解决用户未绑定支付方式造成的丢单问题; */success: (e) => {uni.LTY.loaded()console.log(e)//这里把参数返回服务器进行二次验证 //这里再次验证是否订单真实有效uni.request({url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。 data: {parasm: e,},success: (res) => {uni.showModal({content: "Success",showCancel: false,})try{// 购买成功 更新用户vip时长this.updateUserVip(para);uni.navigateBack();}catch(e){//TODO handle the exception}},});},fail: (e) => {console.log(e)uni.LTY.loaded()uni.showModal({content: "fail: " + e.errMsg,showCancel: false,})},complete: () => {console.log("payment结束")this.payShow = false;this.payShow2 = false;}})},
5、在https://appstoreconnect.apple.com/access/users
用户访问>沙盒测试员添加测试账号。在手机设置>App Store上登录沙盒账号。
不用你现在登录的手机苹果id账号,用另外一个邮箱就收邮件验证再登录,相当于是新建一个apple id账号。
6、沙箱能支付然后正式环境下也就能支付,沙箱环境支付没有真的扣费,放心。
7、我这个用的非续期订阅,有会用续期订阅的小伙伴吗?(续期订阅要是没写好,容易产生漏洞,上个月在酷我音乐开的会员,给他开一个月,然后取消订阅,然后又是新顾客,一块钱包月会员,开了三个月,就很nice。)