微信小程序微信支付总结全篇

247 阅读1分钟

// 支付调用

open_fees(item) {

const _that = this
// 调用微信支付
wx.login({
         success: (res) => {
// 调用OpenId
	_that.$apiService.getOpenIdUrl({
	jsCode: res.code
	}, _that.ACCESS_TOKEN).then(res => {
	// 总金额转换
	let totalPrice = item.totalPrice * 100
	// MD5加密处理
	let sign = this.$md5.md5(
	`body=${item.packName}&out_trade_no=${item.orderNo}&total_fee${totalPrice}&openId=${res.result.openid}&key=xigma@2021`
	)
	let params = {
	    out_trade_no: item.orderNo,
	    body: item.packName,
	    total_fee: totalPrice,
	    openId: res.result.openid,
	    sign: sign
	}
	_that.$apiService.postUnifiedorderUrl(params, this.ACCESS_TOKEN).then(
	res => {
	// 时间戳
	let time = Date.parse(new Date()); //1603009257000,精确到秒
	// 时间戳转字符串
	let timeStamp = String(time)
	let prepay_id = 'prepay_id=' + res.result.prepay_id
	// md5二次签名
	let paySign = md5.hexMD5('appId=' + _that.appID +
	'&nonceStr=' + res.result.nonce_str + '&package=' +
	prepay_id + '&signType=MD5&timeStamp=' + timeStamp +
	"&key=nxxgm951357nxxgm9513571234567890").toUpperCase();
	// 微信支付弹框调用
	wx.requestPayment({
	    appid: _that.appID,
	    timeStamp: timeStamp,
	    nonceStr: res.result.nonce_str,
	    package: 'prepay_id=' + res.result.prepay_id,
	    signType: 'MD5',
	    paySign: paySign,
	 success(res) {
	     console.log('调用成功')
	},
	fail(res) {
	     console.log('调用失败')
	}
	                          })
	                   });
	              })
	           }
	       })
	},