[uni-app] 支付demo

uniapp app 端调微信支付接口

uni-app 官方文档支付接口如下:

uni.requestPayment({
    provider: provider, // wxpay、alipay
    orderInfo: 'orderInfo', //微信、支付宝订单数据
    success: function (res) {
        console.log('success:' + JSON.stringify(res));
    },
    fail: function (err) {
        console.log('fail:' + JSON.stringify(err));
    }
});

文档中 orderInfo 的格式没写清楚,今天刚好在研究支付,发现调起微信支付接口的 orderInfo 可以是对象,也可以是对象字符串,比如:

let obj = {
    appid: 应用ID,
    noncestr: 随机字符串,
    package: 'Sign=WXPay', // 固定值,以微信支付文档为主
    partnerid: 商户号,
    prepayid: 预支付交易会话ID,
    timestamp: 时间戳,
    sign: 签名 // 根据签名算法生成签名
}
// 第一种写法,传对象
let orderInfo = obj
// 第二种写法,传对象字符串
let orderInfo = JSON.stringify(obj)
uni.requestPayment({
    provider: 'wxpay',
    orderInfo: orderInfo, //微信、支付宝订单数据
    success: function (res) {
        console.log('success:' + JSON.stringify(res));
    },
    fail: function (err) {
        console.log('fail:' + JSON.stringify(err));
    }
});
—

小程序支付DEMO(前端部分)

<template>
	<view>
		<button @click="paymini">小程序支付</button>
		<button @click="payapp">app支付</button>
	</view>
</template>
 
<script>
export default {
	data() {
		return {

		};
	},
	methods: {
		payapp: function() {
			
			// 请求后台数据 prepay_id paySign nonceStr timeStamp
			uni.request({
				url: '',
				data: {
					code: code,
					payMoney: 1,
					uid: '',
					type: '1'
				},
				header: {
					'custom-header': '' //自定义请求头信息
				},
				success: (res) => {
					console.log(res);
					// 调起支付
					uni.requestPayment({
						provider: 'alipay',
						orderInfo: {
							"dealId": res.dealId,
							"appKey": res.appKey,
							"totalAmount": res.totalAmount,
							"tpOrderId": res.tpOrderId,
			 				"dealTitle": res.dealTitle,
							"rsaSign": res.rsaSign,
							"bizInfo": res.bizInfo
						}, //订单数据
						success: function(res) {
							console.log('success:' + JSON.stringify(res));
						},
						fail: function(err) {
							console.log('fail:' + JSON.stringify(err));
						}
					});
				}
			});
			
			
		},

		paymini: function() {
			uni.login({
				provider: 'weixin',
				success: function(loginRes) {
					let code = loginRes.code;
					// 请求后台数据 prepay_id paySign nonceStr timeStamp
					uni.request({
						url: '',
						data: {
							code: code,
							payMoney: 1,
							uid: '',
							type: '1'
						},
						header: {
							'custom-header': '' //自定义请求头信息
						},
						success: (res) => {
							console.log(res);
							// 调起支付
							uni.requestPayment({
								provider: 'wxpay',
								timeStamp: String(Date.now()),
								nonceStr: res.nonceStr,
								package: res.package,
								signType: 'MD5',
								paySign: res.paySign,
								success: function(res) {
									console.log('success:' + JSON.stringify(res));
								},
								fail: function(err) {
									console.log('fail:' + JSON.stringify(err));
								}
							});
						}
					});
				}
			});
		}
	}
}
</script>
 
<style>
 
</style>
发布了6 篇原创文章 · 获赞 0 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/manbudezhu/article/details/102610498