小程序,app,支付
-
1.在uniapp项目中,会有一个 ”manifest.json“ 文件中配置。
- 打开 ”manifest.json“ 文件后,在里面 App模块配置中,勾选 Payment(支付)功能,里面包含:(Apple应用内支付,支付宝支付,微信支付,Paypal支付,Stripe支付(Android平台无配置参数),Google支付),根据自己的需求来定。
1:在勾选位置支付的时候会让你填写appid,这个appid就是你们在微信开发者平台开通之后的appid。
2:Universal Link是苹果再WWDC 2015上提出的iOS 9的新特性,是一种仅限于苹果设备的特别深度链接协议,能通过打开一个Https链接来直接启动您的客户端应用。开始之前,确保你有一个Https协议的域名,下面我们就看看在uniapp中如何正确配置。
- 打开 ”manifest.json“ 文件后,在里面 App模块配置中,勾选 Payment(支付)功能,里面包含:(Apple应用内支付,支付宝支付,微信支付,Paypal支付,Stripe支付(Android平台无配置参数),Google支付),根据自己的需求来定。
- 步骤一:新建 apple-app-site-association文件,填写下面的内容
{ "applinks": {
"apps": [],
"details": [
{
"appID": "YK9X2DF6.com.package.xxxx",
"paths": [ "/ulink/*"]
}
]
}
}
-
Team ID
和Bundle ID
不知道的话,前往 苹果开发者中心 ,打开Identifiers
,找到对应的应用,点击进入查看
-
注意!注意!注意!
请一定得开启Associated Domains服务,启用后重新生成证书,并重新打包app。
- 以上配置好之后,就可以在要支付的页面调用支付。
// 点击支付按钮
submit() {
if (this.groupValue) {
this.rqueryGoodsBuy()
} else {
this.$showToast('请勾选我已阅读并同意提货协议')
}
},
// 调用下单api
rqueryGoodsBuy() {
let data = {`要传给后端的参数`}
`调用api,(如:postGoodsBuy)`(data).then(res => {
if (res.code == 0) {
`判断是app,还是 小程序`
// #ifdef APP-PLUS
this.requerySubmitApp(res.data)
// #endif
// #ifdef MP-WEIXIN
this.requerySubmitApplet(res.data)
// #endif
}
}).catch(e => {
//联网失败, 结束加载
this.$showToast(e);
})
},
// 订单app支付
requerySubmitApp(id) {
let that = this;
uni.showLoading({
title: '请稍后...'
})
let data = {
id: id,
`通过选择方式来判断不同的支付,wx_app为微信支付,alipay_app支付宝支付,由后台来定`
channelCode: that.paymentMethod == 1 ? 'wx_app' : 'alipay_app',
}
postSubmit(data).then(res => {
// 处理支付orderInfo
let orderInfo = null;
`通过选择后的方式来判断`
if(that.paymentMethod == 1){
that.goodsBuyData = JSON.parse(res.data.displayContent)
orderInfo = {
"appid": that.goodsBuyData.appid,
"noncestr": that.goodsBuyData.noncestr,
"package": that.goodsBuyData.packageValue,
"partnerid": that.goodsBuyData.partnerId,
"prepayid": that.goodsBuyData.prepayId,
"timestamp": that.goodsBuyData.timestamp,
"sign": that.goodsBuyData.sign
};
}else{
orderInfo = res.data.displayContent;
}
// 判断是微信支付还是支付宝支付
let providerState = '';
`这个支付方式是固定的,微信就是wxpay,支付宝就是alipay`
that.paymentMethod == 1 ? providerState = 'wxpay' : providerState = 'alipay';
// 调用支付api
uni.requestPayment({
provider: providerState,
orderInfo: orderInfo,
success: function(res) {
showSuccess('支付成功')
},
fail: function(err) {
showError('支付失败')
}
})
}).catch(e => {
//联网失败, 结束加载
that.$showToast(e);
})
},
// 订单小程序支付
requerySubmitApplet(id) {
let aoct = this;
// 获取 openid
let info = uni.getStorageSync('userInfo');
let data = {
id: id,
channelCode: "wx_lite",
channelExtras: {
openid: info.openId
}
}
postSubmit(data).then(res => {
uni.showLoading({
title: '请稍后...'
})
aoct.goodsBuyData = JSON.parse(res.data.displayContent)
// 调用支付api
uni.requestPayment({
timeStamp: aoct.goodsBuyData.timeStamp, // 时间戳(单位:秒)
nonceStr: aoct.goodsBuyData.nonceStr, // 随机字符串
package: aoct.goodsBuyData.packageValue, // 固定值
signType: aoct.goodsBuyData.signType, //固定值
paySign: aoct.goodsBuyData.paySign, //签名
success: function(res) {
console.log('支付成功')
uni.hideLoading();
},
fail: function(err) {
showError('取消支付')
uni.hideLoading();
}
})
}).catch(e => {
console.log(e, '失败拉')
//联网失败, 结束加载
aoct.$showToast(e);
})
},
- 以上就是uniapp中支付功能,小程序、App。
- 看大家还有什么好的方法都可以分享,讨论。