小程序,app,支付
-
1.在uniapp項目中,會有一個 ”manifest.json“ 文件中配置。
- 打開 ”manifest.json“ 文件后,在里面 App模塊配置中,勾選 Payment(支付)功能,里面包含:(Apple應(yīng)用內(nèi)支付,支付寶支付,微信支付,Paypal支付,Stripe支付(Android平臺無配置參數(shù)),Google支付),根據(jù)自己的需求來定。
1:在勾選位置支付的時候會讓你填寫appid,這個appid就是你們在微信開發(fā)者平臺開通之后的appid。
2:Universal Link是蘋果再WWDC 2015上提出的iOS 9的新特性,是一種僅限于蘋果設(shè)備的特別深度鏈接協(xié)議,能通過打開一個Https鏈接來直接啟動您的客戶端應(yīng)用。開始之前,確保你有一個Https協(xié)議的域名,下面我們就看看在uniapp中如何正確配置。
- 打開 ”manifest.json“ 文件后,在里面 App模塊配置中,勾選 Payment(支付)功能,里面包含:(Apple應(yīng)用內(nèi)支付,支付寶支付,微信支付,Paypal支付,Stripe支付(Android平臺無配置參數(shù)),Google支付),根據(jù)自己的需求來定。
- 步驟一:新建 apple-app-site-association文件,填寫下面的內(nèi)容
{ "applinks": {
"apps": [],
"details": [
{
"appID": "YK9X2DF6.com.package.xxxx",
"paths": [ "/ulink/*"]
}
]
}
}
-
Team ID和Bundle ID不知道的話,前往 蘋果開發(fā)者中心 ,打開Identifiers,找到對應(yīng)的應(yīng)用,點(diǎn)擊進(jìn)入查看
-
注意!注意!注意!請一定得開啟Associated Domains服務(wù),啟用后重新生成證書,并重新打包app。
- 以上配置好之后,就可以在要支付的頁面調(diào)用支付。
// 點(diǎn)擊支付按鈕
submit() {
if (this.groupValue) {
this.rqueryGoodsBuy()
} else {
this.$showToast('請勾選我已閱讀并同意提貨協(xié)議')
}
},
// 調(diào)用下單api
rqueryGoodsBuy() {
let data = {`要傳給后端的參數(shù)`}
`調(diào)用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 => {
//聯(lián)網(wǎng)失敗, 結(jié)束加載
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';
// 調(diào)用支付api
uni.requestPayment({
provider: providerState,
orderInfo: orderInfo,
success: function(res) {
showSuccess('支付成功')
},
fail: function(err) {
showError('支付失敗')
}
})
}).catch(e => {
//聯(lián)網(wǎng)失敗, 結(jié)束加載
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)
// 調(diào)用支付api
uni.requestPayment({
timeStamp: aoct.goodsBuyData.timeStamp, // 時間戳(單位:秒)
nonceStr: aoct.goodsBuyData.nonceStr, // 隨機(jī)字符串
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, '失敗拉')
//聯(lián)網(wǎng)失敗, 結(jié)束加載
aoct.$showToast(e);
})
},
- 以上就是uniapp中支付功能,小程序、App。
- 看大家還有什么好的方法都可以分享,討論。



