无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻动态 > 行业新闻 >

手机微信微信小程序集成化手机微信付款

时间:2021-03-09 06:19来源:未知 作者:jianzhan 点击:
1.启用手机微信付款和手机微信商家号这一全过程就和启用微信服务号的手机微信付款全过程一样,沒有甚么能够说的。2.得到客户的openid大家必须在微信小程序的顾客端js中获得当今客
1.启用手机微信付款和手机微信商家号
这一全过程就和启用微信服务号的手机微信付款全过程一样,沒有甚么能够说的。

2.得到客户的openid
大家必须在微信小程序的顾客端js中获得当今客户的openid,根据启用wx.login方式能够获得客户的code,随后开发设计者网络服务器应用登陆凭据 code 获得 openid。


wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。
wx.login({ success: function(res) { if (res.code) { //进行互联网恳求 wx.request({ url: onLogin , method: POST , data: { code: res.code }, success: function(res) { var openid = res.data.openid; }, fail: function(err) { console.log(err) } }) } else { console.log( 获得客户登陆态不成功! + res.errMsg) } } }); 创作者:邻居陈叔叔 连接:p/72f5c1e3f8a5 來源:简书 经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。 wx.login({
  success: function(res) {
  if (res.code) {
  //进行互联网恳求
  wx.request({
  url: onLogin ,
  method: POST ,
  data: {
  code: res.code
  },
  success: function(res) {
  var openid = res.data.openid;
  },
  fail: function(err) {
  console.log(err)
  }
  })
  } else {
  console.log( 获得客户登陆态不成功! + res.errMsg)
  }
  }
  });

var code = req.param( code
  request({
  url: sns/jscode2session?appid= +appid+ secret= +secret+ js_code= +code+ grant_type=authorization_code ,
  method: GET
  }, function(err, response, body) {
  if (!err response.statusCode == 200) {
  res.json(JSON.parse(body));
  }
  });


3.获得prepay_id和第三方支付签字认证paySign
这一步的全过程就和微信服务号里的手机微信付款全过程一样,分成顾客端和网络服务器端
最先看来一下顾客端js
在微信服务号里,大家是根据以下的编码来调起付款作用

function jsApiCall()
  {
  WeixinJSBridge.invoke(
  getBrandWCPayRequest ,
  {
  appId : ,  //微信公众号名字,由商家传到   
  timeStamp : ,  //時间戳,自1972年至今的秒数   
  nonceStr : , //任意串   
  package : prepay_id= %=prepay_id% ,   
  signType : MD5 ,  //手机微信签字方法:   
  paySign : %=_paySignjs% //手机微信签字
  },
  function(res){
  WeixinJSBridge.log(res.err_msg);
  if( res.err_msg == get_brand_wcpay_request:ok ){
  alert( 付款取得成功!
  }else{
  alert( 付款不成功!
  }
  }
  );
  }

在微信小程序里,大家是根据wx.requestPayment方式来调起付款作用,自然在这里以前,大家需先获得prepay_id。

  wx.request({
  url: service/getPay ,
  method: POST ,
  data: {
  bookingNo:bookingNo,  /*定单号*/
  total_fee:total_fee,  /*定单额度*/
  openid:openid
  },
  header: {
  content-type : application/json
  },
  success: function(res) {
  wx.requestPayment({
  timeStamp :timeStamp,
  nonceStr : nonceStr,
  package : prepay_id= +res.data.prepay_id,
  signType : MD5 ,
  paySign : res.data._paySignjs,
  success :function(res){
  console.log(res);
  },
  fail :function(res){
  console.log( fail: +JSON.stringify(res));
  }
  })
  },
  fail: function(err) {
  console.log(err)
  }
  })
 

那在网络服务器端关键要完成的是prepay_id的获得和签字paySign

  var bookingNo = req.param( bookingNo
  var total_fee = req.param( total_fee
  var openid = req.param( openid
  var body = 花费表明
  var url = pay/unifiedorder
  var formData = xml
  formData += appid appid /appid //appid
  formData += attach test /attach
  formData += body + body + /body
  formData += mch_id mch_id /mch_id //商家号
  formData += nonce_str nonce_str /nonce_str
  formData += notify_url notify_url /notify_url
  formData += openid + openid + /openid
  formData += out_trade_no + bookingNo + /out_trade_no
  formData += spbill_create_ip spbill_create_ip /spbill_create_ip
  formData += total_fee + total_fee + /total_fee
  formData += trade_type JSAPI /trade_type
  formData += sign + paysignjsapi(appid, attach, body, mch_id, nonce_str, notify_url, openid, bookingNo, spbill_create_ip, total_fee, JSAPI ) + /sign
  formData += /xml
  request({
  url: url,
  method: POST ,
  body: formData
  }, function(err, response, body) {
  if(!err response.statusCode == 200) {
  var prepay_id = getXMLNodeValue( prepay_id , body.toString( utf-8 ));
  var tmp = prepay_id.split( [
  var tmp1 = tmp[2].split( ]
  //签字
  var _paySignjs = paysignjs(appid, mch_id, prepay_id= + tmp1[0], MD5 ,timeStamp);
  var o = {
  prepay_id: tmp1[0],
  _paySignjs: _paySignjs
  }
  res.send(o);
  }
  });

采用的涵数
function paysignjs(appid, nonceStr, package, signType, timeStamp) {
  var ret = {
  appId: appid,
  nonceStr: nonceStr,
  package: package,
  signType: signType,
  timeStamp: timeStamp
  };
  var string = raw1(ret);
  string = string + key= +key;
  console.log(string);
  var crypto = require( crypto
  return crypto.createHash( md5 ).update(string, utf8 ).digest( hex
};

function raw1(args) {
  var keys = Object.keys(args);
  keys = keys.sort()
  var newArgs = {};
  keys.forEach(function(key) {
  newArgs[key] = args[key];
  });

  var string =
  for(var k in newArgs) {
  string += + k + = + newArgs[k];
  }
  string = string.substr(1);
  return string;
};

function paysignjsapi(appid, attach, body, mch_id, nonce_str, notify_url, openid, out_trade_no, spbill_create_ip, total_fee, trade_type) {
  var ret = {
  appid: appid,
  attach: attach,
  body: body,
  mch_id: mch_id,
  nonce_str: nonce_str,
  notify_url: notify_url,
  openid: openid,
  out_trade_no: out_trade_no,
  spbill_create_ip: spbill_create_ip,
  total_fee: total_fee,
  trade_type: trade_type
  };
  var string = raw(ret);
  string = string + key= +key;
  var crypto = require( crypto
  return crypto.createHash( md5 ).update(string, utf8 ).digest( hex
};

function raw(args) {
  var keys = Object.keys(args);
  keys = keys.sort()
  var newArgs = {};
  keys.forEach(function(key) {
  newArgs[key.toLowerCase()] = args[key];
  });

  var string =
  for(var k in newArgs) {
  string += + k + = + newArgs[k];
  }
  string = string.substr(1);
  return string;
};

function getXMLNodeValue(node_name, xml) {
  var tmp = xml.split( + node_name +
  var _tmp = tmp[1].split( / + node_name +
  return _tmp[0];
}


创作者:邻居陈叔叔
连接:p/72f5c1e3f8a5
來源:简书
经典著作权归创作者全部。商业服务转截请联络创作者得到受权,非商用转截请标明出處。

 

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信