Skip to content

Commit f9e30d1

Browse files
YunaiVgitee-org
authored andcommitted
!143 修复支付宝app支付功能正常,补充微信app支付逻辑实现功能待测试
Merge pull request !143 from huppygo/master
2 parents d91d8eb + e02db43 commit f9e30d1

File tree

1 file changed

+49
-30
lines changed

1 file changed

+49
-30
lines changed

sheep/platform/pay.js

Lines changed: 49 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -228,44 +228,63 @@ export default class SheepPay {
228228
});
229229
}
230230

231-
// 支付宝支付(App) TODO 芋艿:待接入【暂时没打包 app,所以没接入,一般人用不到】
231+
// 支付宝支付(App)
232232
async alipay() {
233233
let that = this;
234-
const { error, data } = await this.prepay();
235-
if (error === 0) {
236-
uni.requestPayment({
237-
provider: 'alipay',
238-
orderInfo: data.pay_data, //支付宝订单数据
239-
success: (res) => {
240-
that.payResult('success');
241-
},
242-
fail: (err) => {
243-
if (err.errMsg === 'requestPayment:fail [paymentAlipay:62001]user cancel') {
244-
sheep.$helper.toast('支付已手动取消');
245-
} else {
246-
that.payResult('fail');
247-
}
248-
},
249-
});
234+
const { code, data } = await this.prepay('alipay_app');
235+
if (code !== 0) {
236+
return;
250237
}
238+
239+
uni.requestPayment({
240+
provider: 'alipay',
241+
orderInfo: data.displayContent, // 直接使用返回的支付参数
242+
success: (res) => {
243+
that.payResult('success');
244+
},
245+
fail: (err) => {
246+
if (err.errMsg === 'requestPayment:fail [paymentAlipay:62001]user cancel') {
247+
sheep.$helper.toast('支付已手动取消');
248+
} else {
249+
that.payResult('fail');
250+
}
251+
},
252+
});
251253
}
252254

253-
// 微信支付(App) TODO 芋艿:待接入:待接入【暂时没打包 app,所以没接入,一般人用不到】
255+
// 微信支付(App)
254256
async wechatAppPay() {
255257
let that = this;
256-
let { error, data } = await this.prepay();
257-
if (error === 0) {
258-
uni.requestPayment({
259-
provider: 'wxpay',
260-
orderInfo: data.pay_data, //微信订单数据(官方说是string。实测为object)
261-
success: (res) => {
262-
that.payResult('success');
263-
},
264-
fail: (err) => {
265-
err.errMsg !== 'requestPayment:fail cancel' && that.payResult('fail');
266-
},
267-
});
258+
// 获取预支付信息
259+
let { code, data } = await this.prepay('wx_app');
260+
if (code !== 0) {
261+
sheep.$helper.toast('获取支付信息失败');
262+
return;
268263
}
264+
265+
// 解析支付参数
266+
const payConfig = JSON.parse(data.displayContent);
267+
268+
// 调用微信支付
269+
uni.requestPayment({
270+
provider: 'wxpay',
271+
timeStamp: payConfig.timeStamp,
272+
nonceStr: payConfig.nonceStr,
273+
package: payConfig.packageValue,
274+
signType: payConfig.signType,
275+
paySign: payConfig.paySign,
276+
success: (res) => {
277+
that.payResult('success');
278+
},
279+
fail: (err) => {
280+
if (err.errMsg === 'requestPayment:fail cancel') {
281+
sheep.$helper.toast('支付已手动取消');
282+
} else {
283+
sheep.$helper.toast('支付失败:' + err.errMsg);
284+
that.payResult('fail');
285+
}
286+
}
287+
});
269288
}
270289

271290
// 支付结果跳转,success:成功,fail:失败

0 commit comments

Comments
 (0)