小程序如何做支付功能

			/**
			 * 支付功能:
			 * 
			 * 1、将支付金额发送给后台 后台将支付时需要的参数返回来
			 * 2、发起支付 填上对应的参数(注意:签名需要md5加密)
			 * 3、根据支付结果显示对应的页面
			 * */
			async payment() {
			//this.$ajax 自己封装的网络请求
				let res = await this.$ajax({
					method: "post",
					data: {
						money: 0.01   //支付的金额
					},
					url: `/v1/WxShopcatpay`   //后台接口
				})
				if (res.data.code === "200") {
					console.log(res)
					let data = res.data.data  //后台返回的数据
					//统一下单接口返回的 prepay_id 参数值
					let pkg = 'prepay_id=' + data.prepay_id;  
					//设置时间戳
					let timeStamp = (Date.parse(new Date()) / 1000).toString();
					/**
					 * 设置签名并md5加密
					 * 
					 * 参数:
					 * appId 小程序唯一标识 (后台返回)
					 * nonceStr 随机字符串(后台返回)
					 * package  统一下单接口返回的 prepay_id 参数值  (后台返回)
					 * timeStamp 时间戳(前台设置)
					 * key 微信支付秘钥(微信支付文档获取)
					 * */
					let paySign = md5('appId=' + data.appid + '&nonceStr=' + data.nonce_str + '&package=' + pkg +
						'&signType=MD5&timeStamp=' + timeStamp + "&key=微信支付秘钥").toUpperCase(); //此处用到hexMD5插件
					// 发起支付
					uni.requestPayment({
						provider: 'wxpay',
						timeStamp: timeStamp,  //时间戳
						nonceStr: res.data.data.nonce_str,  //后台返回的随机字符串
						package: pkg,  //统一下单接口返回的 prepay_id 参数值
						signType: 'MD5',  //使用MD5加密
						paySign: paySign,  //签名
						success: (res) =>{  //支付成功的回调
							console.log('success:' + JSON.stringify(res));
						},
						fail: (err) =>{ //支付失败或者取消支付的回调
							console.log('fail:' + JSON.stringify(err));
						}
					});
				}
			}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值