@@ -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