weapp-tools 微信小程序工具集
重要信息全部在服务端,安全等级高
使用了async / await特性,使用请升级node.js to 7.6.0以上。
配置文件格式demo(wxapp.json)
{
"app_id":"",
"app_secret":"",
"mch_id":"",
"api_key":"",
"notify_url":"https://****/app/pay/notify" #支付成功回调通知
}
获取openid —— wxappTools.getSession()
小程序端wx.login()获取code,将code传入服务端,获取session信息
const wxappTools = ; // [配置文件中保存了小程序的appid和appsecret,这些信息不应该放到小程序中,应该放到服务端,提高安全性]const config = ;// 读取配置文件 moduleexports = // 查询并创建小程序用户 { // [调用方法获取openid] let sessionRet = await wxappTools; ifsessionRet'errcode' throw sessionRet'errmsg'; delete data'code'; datawx_id = sessionRet'openid'; let user = await app_user; if!user dataid = helper; return await app_user; return user; };
微信支付 —— wxappTools.doPrepay()
小程序将用户选择的商品信息传到服务端,服务端生成订单,再到微信支付平台生成预支付订单 生成预付单后,将参数和签名打包返回给微信小程序,小程序直接使用参数完成支付。
const wxappTools = ;const config = ; moduleexports = // 创建内部订单,支付需要 { let trade = {}; tradeid = helper; tradewx_id = argswx_id; tradeflow_no = helper; if argsresource_id traderesource_id = argsresource_id; if argsresource_category traderesource_category = argsresource_category; if argscategory_type tradecategory_type = argscategory_type; tradepayment = argspayment; tradebody = argsbody; tradestatus = 0; return app_pay; } { let trade = await this; if !trade throw '订单创建失败'; // 此步骤返回小程序支付所需要的5个参数和签名 return await wxappTools };
小程序中的处理
wx.requestPayment(
{
'timeStamp': prepayRet.data.timeStamp,
'nonceStr': prepayRet.data.nonceStr,
'package': prepayRet.data.package,
'signType': prepayRet.data.signType,
'paySign': prepayRet.data.paySign,
'success':(res) => {
console.log(res);
},
'fail':(res) => {
console.log(res);
},
'complete':(res) => {
console.log(res);
}
}
)