7***@qq.com
7***@qq.com
  • 发布:2020-11-27 09:37
  • 更新:2022-01-09 20:59
  • 阅读:4020

uni.requestPayment支付宝支付成功后的回调,返回的结果数据格式有问题

分类:uni-app

如题,在用 uniapp做APP的时候,需要用到支付,在用uni.requestPayment的时候,一切都很顺利,成功后,后端说要给他支付宝返回的订单号(trade_no),本以为正常可以拿到,结果,JSON.stringify把结果打印出来之后,放进json.cn里面根本没法正常转义,一层一层刨开发现对象里面多了一句话,如图。红框框起来的都是多余的,包括花括号,去掉就可以正常字符串转对象。真的拉胯,字符串太长了,不想看,一直以为返回结果没问题,弄了半天~~

希望官方看到后能处理一下!!!

附解决方案代码:
pullUpPay(provider, orderInfo) {
let that = this
uni.requestPayment({
provider: provider,
orderInfo: orderInfo, // 微信、支付宝订单数据
success: function (res) {
console.log('success:' + JSON.stringify(res))
console.log('缴费成功')
if(provider === 'alipay') {
console.log('rawdata:' + res.rawdata)

                    let rawData = JSON.parse(res.rawdata) // 取对象中的rawdata  

                    let resultStr = rawData.result // 取出result字符串  

                    let resultList = resultStr.split(';') // 分号分割,取第0个  

                    let finalRes = resultList[0].substring(0, resultList[0].length - 1) // 将取出来的第0个字符串的最后一位花括号去掉  

                    let finalObject = JSON.parse(finalRes) // 正常转义  

                    let trade_no = finalObject.alipay_trade_app_pay_response.trade_no // 取出订单号  

                    console.log(trade_no)  
                } else if(provider === 'wxpay') {  
                    // 微信支付申请还没通过,出了问题,估计也和支付宝一样  
                }  
            },  
            fail: function (err) {  
                console.log('fail:' + JSON.stringify(err))  
                console.log('缴费失败')  
            }  
        })  
    }
3 关注 分享
aiyide ltlzx 1***@qq.com

要回复文章请先登录注册

makeit

makeit

这个问题好了吗?
2022-01-09 20:59