分享

uniApp——调用支付功能:支付宝

 看见就非常 2020-10-01

uniapp文档目前并没有提供这些返回值的数据

// 1、点击支付,先获取手机上是否已安装支付宝或微信
toPay() {
// #ifdef APP-PLUS
uni.getProvider({
service: "payment",
success: (e) => {// e: {"errMsg":"getProvider:ok","service":"payment","provider":["alipay","wxpay"]}
let arrStr = e.provider.join(',')
if (arrStr.indexOf('alipay') === -1) {
uni.showToast({ icon: 'none', title: '目前只支持支付宝' })
return
}
// 调用支付
this.requestPayment()
},
fail: (e) => {
console.log("获取支付通道失败:", e);
}
});
// #endif
},
// 2、异步调用支付,先获取订单信息
async requestPayment() {
    let orderInfo = await this.getOrderInfo('alipay');
    // orderInfo 的值:见下方
    if (orderInfo.statusCode !== 200) {
        console.log("获得订单信息失败", orderInfo);
        uni.showModal({
            content: "获得订单信息失败",
            showCancel: false
        })
        return;
    }
    uni.requestPayment({
        provider: 'alipay',
        orderInfo: orderInfo.data,
        success: (e) => {
            console.log("success", e);
            uni.showToast({
                title: "感谢您的赞助!"
            })
        },
        fail: (e) => {
            console.log("fail", e);
            uni.showModal({
                content: "支付失败,原因为: " + e.errMsg,
                showCancel: false
            })
        },
        complete: () => {
            this.providerList[index].loading = false;
        }
    })
},
// 3、获取订单信息
getOrderInfo(e) {
    let appid = "";
    // #ifdef APP-PLUS
    appid = plus.runtime.appid; // appid:
    // #endif
    let url = 'https://demo./payment/?payid=' + e + '&appid=' + appid + '&total=' + this.price;
    return new Promise((res) => {
        uni.request({
            url: url,
            success: (result) => {
                res(result);
            },
            fail: (e) => {
                res(e);
            }
        })
    })
},
// orderInfo 的值(注意:此时这里的app_id不是我真实的数据,而是uniapp开发工具生成的helloUniApp项目中的值,本篇博客主要记录一些返回值,因为uniapp文档目前并没有提供这些返回值的数据):
{
"data": "alipay_sdk=alipay-sdk-php-20161101&app_id=2015112700878442&biz_content=%7B%22body%22%3A%22DCloud%E8%87%B4%E5%8A%9B%E4%BA%8E%E6%89%93%E9%80%A0HTML5%E6%9C%80%E5%A5%BD%E7%9A%84%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%8C%85%E6%8B%AC%E7%BB%88%E7%AB%AF%E7%9A%84Runtime%E3%80%81%E4%BA%91%E7%AB%AF%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%92%8CIDE%EF%BC%8C%E5%90%8C%E6%97%B6%E6%8F%90%E4%BE%9B%E5%90%84%E9%A1%B9%E9%85%8D%E5%A5%97%E7%9A%84%E5%BC%80%E5%8F%91%E8%80%85%E6%9C%8D%E5%8A%A1%E3%80%82%22%2C%22subject%22%3A+%22DCloud%E9%A1%B9%E7%9B%AE%E6%8D%90%E8%B5%A0%22%2C%22out_trade_no%22%3A+%2220200407134712%22%2C%22timeout_express%22%3A+%2230m%22%2C%22total_amount%22%3A+%221%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&charset=UTF-8&format=json&method=alipay.trade.app.pay&notify_url=http%253A%252F%252Fdemo.%252Fpayment%252Falipay%252Fnotify.php&sign_type=RSA2&timestamp=2020-04-07+13%3A47%3A12&version=1.0&sign=uVbC8%2FLqXbrHyTZEt8ssFfDVAOw4cSZaAHByWcY4ip8vHsF6H7tqwAgJ%2BqfenR5Rda40H0V5HxsFSDofW2ZBMQhMLQtv3d8EsLHHyN%2BbRbKOFuaCI3UzVyFqsXnyrsJEYFWWmikcGcCTFQtg8lw9YHZe8TfEODHDk06pkCDjeRTQN4j%2FGepGtS%2FFk0NjrZEBf75aCtRf01MaWcSgLMTlk9MVIqumtjgW57laxHCC%2FTnXf7r3VB01kpVgfiVJwlj%2BM2V0Fz8CMdcEoHwrmaIeo4jwb%2F2juMKk3uI3oTQxlaaZLo8Sn59LmP0IUNqZehb0EqbGMreeDJZoopGm2s4qoA%3D%3D",
"statusCode": 200,
"header": {
"Transfer-Encoding": "chunked",
"Server": "Tengine",
"Access-Control-Allow-Origin": "*",
"Connection": "keep-alive",
"X-Android-Received-Millis": "1586238431647",
"EagleId": "74cf71a815862384327027639e",
"Date": "Tue, 07 Apr 2020 05:47:12 GMT",
"Via": "cache39.l2et2[18,0], kunlun10.cn1241[44,0]",
"X-Android-Selected-Protocol": "http/1.1",
"Timing-Allow-Origin": "*",
"X-Android-Response-Source": "NETWORK 200",
"Vary": "[Accept-Encoding, Accept-Encoding]",
"X-Android-Sent-Millis": "1586238431572",
"_": "HTTP/1.1 200 OK",
"Content-Type": "text/plain;charset=UTF-8"
},
"errMsg": "request:ok"
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多