uniApp——調用支付功能:支付寶

本篇博客主要記錄一些返回值,因爲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.dcloud.net.cn/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.dcloud.net.cn%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"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章