uniapp开发的小程序中调用微信支付

31 篇文章 2 订阅
6 篇文章 0 订阅

实操

后端准备

下图中所标字段,都由后端在微信处取得,然后后端应该给出一个接口,去获取这些字段的信息
在这里插入图片描述

前端调用接口请求

前端调用后端给的接口,获取下图中的信息,一般前端还需要携带支付金额(以一分为单位)以及当前交易的说明
在这里插入图片描述

比如我的代码如下

		openVip(){
			this.showLoading();
			let that = this;
			let mydata = {};
			//当前用户的openid
			mydata.open_id = getApp().globalData.openid;
			//本次交易的说明
			mydata.body = "开通vip测试";
			//此次交易的金额,以1分为单位
			mydata.total_fee = "1";
			console.log('aaa');
			console.log(mydata);
			//把这些信息发给后端,后端会返回上图标注的那些字段
			uni.request({
				url: that.apiHost.prepare_pay,
				data: mydata,
				success: res => {
					console.log(res)
					if (res.data.ret == 1) {
						uni.hideLoading();
						that.zhifu = Object.assign({},that.zhifu,res.data.data)
						that.to_pay();
					}else{
						that.showTip(res.data.msg);
					}
				},
				fail() {
					uni.hideLoading();
				},
				complete() {}
			});
		},

前端调用wx.requestPayment

拿到上面的字段以后,前端就可以调用wx.requestPayment完成相应支付,我的代码如下

to_pay(){
	let that = this;
	let zhifu = that.zhifu;
	wx.requestPayment({
	  timeStamp: zhifu.timeStamp,
	  nonceStr: zhifu.nonceStr,
	  package: zhifu.package,
	  signType: 'MD5',
	  paySign: zhifu.paySign,
	  success (res) { 
		  //看看vip是否开通成功
		  console.log(res)
		  let that = this;
		  let userInfo = getApp().globalData;
		  let openid = getApp().globalData;
		  //后面的这个请求,我只用用来校验后端是否将数据同步了(后端是否标注开通vip)
		  uni.request({
		  	url: that.apiHost.get_user_info,
		  	data: {
		  		open_id: openid
		  	},
		  	success: (data) => {
				console.log("getUserInfo")
				console.log(data)
				const backData = data.data.data
				if(backData.is_vip == "1"){
					userInfo.is_vip = backData.is_vip;
					userInfo.vip_end_time = backData.vip_end_time;
					uni.showToast({
					    title: '开通成功,正在跳转',
					    duration: 2000,
						complete() {
							uni.navigateBack();
						}
					});
				}else{
					that.showTip("开通失败,请联系客服");
				}
				
		  	},
		  	fail() {
		  	},
		  	complete() {
		  
		  	}
		  })
	  },
	  fail (res) {
		  console.log(res)
	  }
	})
}

相关文档

wx.requestPayment

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值