微信支付小程式版

2022-08-23 20:54:09 字數 2356 閱讀 2304

請求流程:  

1. 小程式呼叫wx.request請求到後台(含一些支付資訊,如金額、交易名稱等)

3.連同生成的簽名及一些重要資訊在後台加密後生成乙個簽名(後文稱第二次簽名),連同第二次簽名已經資訊返回給 1 中的小程式request請求。

跳坑指南:

以下為**,供參考:(為了測試,交易金額資訊直接在後台寫死了)

//小程式前台事件函式  xx.js

wxpay:function())

},fail: function (res) })}

}})

}

//後台eggjs  xxservice.js 中的方法   

async getprepayid(parm) = this;

var openid = parm.openid;

var spbill_create_ip = '192.168.3.11' ''); // 獲取客戶端ip

var body = '測試支付'; // 商品描述

var notify_url = 'https://localhost:7001/api/v1/getprepayid' // 支付成功的**位址 可訪問 不帶引數

var nonce_str = str; // 隨機字串

var out_trade_no = str; // 商戶訂單號

var total_fee = '1'; // 訂單** 單位是 分

var timestamp = math.round(new date().gettime()/1000); // 當前時間

console.log("nonce_str",str);

var ret =

// 簽名

var sign = paysign.paysignjsapi(ret);

var bodydata = '';

bodydata += '' + body + ''; // 商品描述

bodydata += '' + nonce_str + ''; // 隨機字串

bodydata += '' + notify_url + ''; // 支付成功的**位址

bodydata += '' + openid + ''; // 使用者標識

bodydata += '' + out_trade_no + ''; // 商戶訂單號

bodydata += '' + spbill_create_ip + ''; // 終端ip

bodydata += '' + total_fee + ''; // 總金額 單位為分

bodydata += 'jsapi'; // 交易型別 小程式取值如下:jsapi

bodydata += '' + sign + '';

bodydata += '';

var returnvalue = {};

var urlstr = '';

const rst = await ctx.curl(urlstr, );

let signbody = rst.data.tostring();

if (!rst.error && rst.status == 200)

returnvalue.paysign = paysign.paysignjsapi(wxsign); // 簽名

} else

});}

return returnvalue;

}

//自己寫的拼報文及md5加密,兩次生成簽名時都會呼叫,所有寫成了乙個獨立的方法   paysign.js
'use strict'; const crypto = require('crypto'); //const request = require('axios'); function paysignjsapi(params) ; // console.log("param.key",param.key); if(param.key)else var str = raw(ret); //將引數拼接成字串 str = str + '&key='+key; console.log("md5str:",str); var md5str = crypto.createhash('md5').update(str).digest('hex'); md5str = md5str.touppercase(); ; return md5str; }; //字元排序連線 function raw(args) ; keys.foreach(function(key) ); var str = ''; for(var k in newargs)  str = str.substr(1); return str; }; module.exports=

微信小程式支付介面 Python版

class payment view staticmethod defget nonce str 生成隨機字串 return str uuid.uuid4 replace staticmethod defgetsing o dict 生成簽名 keys,paras sorted o dict par...

小程式微信支付

weixinpay new weixinpay openid,orderid.res2,訂單支付 res3 goods name total price 100,tsd res2 ret weixinpay pay class weixinpay public function pay 統一下單介面...

微信小程式支付

class wxpay protected mch id protected key protected openid protected out trade no protected body protected total fee protected notifyurl protected un...