uniapp的微信支付

添加小程序,兑换各种视频教程/数据资源。

uniapp的微信支付_第1张图片uniapp的微信支付_第2张图片

1. 封装public.js公共函数:


export const wxPayMoney=(timeStamp,nonceStr,pack,signType,paySign,sucfun,failfun=null,compfun=null)=>{  //6. 封装微信支付函数
	uni.requestPayment({
		provider: 'wxpay',
		orderInfo:"orderInfo",
		timeStamp:timeStamp,
		nonceStr: nonceStr,
		package: pack,
		signType: signType,
		paySign:paySign,
		success (res) {
			sucfun(res)
		},
		fail (err) {
			if(failfun){
				failfun(err)
			}
		},
		complete(result){
			if(compfun){
				compfun(result)
			}
		}
	});
}

2. 在需要的页面调用,如index.vue中:

onReady(){
    this.mockWxPayMoney()
},
methods:{
    mockWxPayMoney(){  //.模拟微信执行接口
		var data={
			orderAmt:"0.01",  //需要支付的金额
			shopId :2,       //自己的后台数据库需要支付给哪个商户的商户id
			token:getCookieSync("myToken"),   //微信用户授权登录,自己后台返回一个token
		}
		uniRequest(BaseUrl_orderCreate,data,(res)=>{  //自己的后台根据向哪个商户支付以及支付多少钱的参数,从而获得返回自己后台优惠折扣之后的实际支付金额。
			console.log(res)
			if(res.data.code===1){
			    var prame={
					payId:res.data.data.payId,
					money:res.data.data.realMoney,
					token:getCookieSync("myToken")
				}
			uniRequest(BaseUrl_payPrepay,prame,(result)=>{//自己后台与微信支付连接返回前端微信支付输入密码需要的参数timeStamp,nonceStr,pack,signType,paySign。						
				if(result.data.code===1){
					var req=result.data.data;
					console.log("支付的结果");
					console.log(req);	                                  w 
      wxPayMoney(String(req.timestamp),req.nonceStr,req.pack,req.signType,req.paySign,(payend)=>{    //调用uniapp的微信支付接口,传入参timeStamp,nonceStr,pack,signType,paySign,从而获得最终支付成功
				        console.log("最终支付成功")
						console.log(payend)
					 })
				}else{
					}							
				 })
			}else{						
				   console.log("支付失败,请重试")
			}
		})			
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(前端,uniApp)