首页 > 热点 > 微信 > 正文

微信小程序 支付简单实例及注意事项

2024-07-22 01:16:42
字体:
来源:转载
供稿:网友

微信小程序 支付

微信小程序的支付和微信公众号的支付是类似的,对比起来还比公众号支付简单了一些,我们只需要调用微信的统一下单接口获取prepay_id之后我们在调用微信的支付即可。

今天我们来封装一般node的支付接口!!!

首先调用统一下单接口我们需要知道一些信息

var bookingNo = 'davdian' + this.createNonceStr() + this.createTimeStamp()  var deferred = Q.defer()   var appid = config.appId   var nonce_str = this.createNonceStr()   var timeStamp = this.createTimeStamp()   var url = "https://api.mch.weixin.qq.com/pay/unifiedorder"   var formData = "<xml>"   formData += "<appid>" + appid + "</appid>" //appid   formData += "<attach>" + attach + "</attach>" //附加数据   formData += "<body>" + body + "</body>"   formData += "<mch_id>" + mch_id + "</mch_id>" //商户号   formData += "<nonce_str>" + nonce_str + "</nonce_str>" //随机字符串,不长于32位。   formData += "<notify_url>" + notify_url + "</notify_url>"   formData += "<openid>" + openid + "</openid>"   formData += "<out_trade_no>" + bookingNo + "</out_trade_no>"   formData += "<spbill_create_ip>61.50.221.43</spbill_create_ip>"   formData += "<total_fee>" + total_fee + "</total_fee>"   formData += "<trade_type>JSAPI</trade_type>"   formData += "<sign>" + this.paysignjsapi(appid, attach, body, mch_id, nonce_str, notify_url, openid, bookingNo, '61.50.221.43', total_fee, 'JSAPI') + "</sign>"   formData += "</xml>"   var self = this  request({    url: url,    method: 'POST',    body: formData   }, function(err, response, body) {    if (!err && response.statusCode == 200) {     var prepay_id = self.getXMLNodeValue('prepay_id', body.toString("utf-8"))     var tmp = prepay_id.split('[')     var tmp1 = tmp[2].split(']')     //签名     var _paySignjs = self.paysignjs(appid, nonce_str, 'prepay_id=' + tmp1[0], 'MD5', timeStamp)     var args = {      appId: appid,      timeStamp: timeStamp,      nonceStr: nonce_str,      signType: "MD5",      package: tmp1[0],      paySign: _paySignjs     }    deferred.resolve(args)    } else {     console.log(body)    }   })   return deferred.promise 

这个是一个统一下单接口的代码,我们需要appid小程序公众号id,mch_id商户号id,openid小程序的唯一标实,key支付用的密码,剩下的参数都是订单的信息和价格之类的,本人require进q模块使用promise,这个因人而异,可以根据自己需要来。我们需要请求https://api.mch.weixin.qq.com/pay/unifiedorder接口

注意:这里我们传递的formdata是一个xml而不是json

然后我们需要签名方法,这里我们需要封装两个方法,一个是签名方法调用统一下单接口会用到,另一个是调用小程序支付用到

统一下单接口sign:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表