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

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值