uniapp使用苹果支付
Posted 苏格拉的底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp使用苹果支付相关的知识,希望对你有一定的参考价值。
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。)
以上是关于uniapp使用苹果支付的主要内容,如果未能解决你的问题,请参考以下文章