chuck-wechat
一个用于微信支付和微信授权的npm包(还在逐步完善当中)
安装
npm的安装方式
npm install chuck-wechat
微信扫码登录
具体参考文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN 首先在微信开放平台配置好授权回调域名,用户扫码成功后就会跳回这个授权域名并在域名后面带上code参数,拿到这个code参数,然后调用codeLogin方法,这个方法有两个参数,第一个参数就是code,第二个参数默认是false,如果想拿到微信用户的个人信息,例如:微信昵称,微信头像等就将这个参数传true
const { default: Wechat } = require('chuck-wechat');
const params = {
appid: 'wx1111111111',
mch_id: '1111111111',
partnerKey: 'xxxxxxxxx',
appSecret: 'xxxxxxxx',
};
const wechat = new Wechat(params);
const code = 'xxxxxxxxxx';
const promise = wechat.codeLogin(code, true);
promise.then((result) => { console.log(result) });
如果调用成功的返回结果是:
{
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1",
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
扫码支付
具体传入的参数参考:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 其中nonce_str和trade_type这两个参数,我已经在包里加了,所以可以不传这两个参数。
const default: Wechat = ; const params = appid: 'wx1111111111' mch_id: '1111111111' partnerKey: 'xxxxxxxxx' appSecret: 'xxxxxxxx';const wechat = params;const data = appid: 'wx1111111111' mch_id: '1111111111' body: '扫码支付' out_trade_no: 'DD2018051401' total_fee: 1 notify_url attach spbill_create_ip: '127.0.0.1';const promise = wechat;promise;
微信退款
微信退款需要多传一个退款证书的路径,不同支付的参数不一定一致,请根据不同支付传不同的参数,以下例子举的是公众号退款请求参数参考链接
const default: Wechat = ; const params = appid: 'wx1111111111' mch_id: '1111111111' partnerKey: 'xxxxxxxxx' appSecret: 'xxxxxxxx';const wechat = params;const data = out_trade_no: 'DD2018051401' out_refund_no: 'TK0000001' total_fee: 1 refund_fee: 1 const certUrl = '/etc/cert/refund_cert.p12'const promise = wechat;promise;
小程序登录
const default: Wechat = ; const params = appid: 'wx1111111111' appSecret: 'xxxxxxxx' ; const wechat = params; const code = 'xxxxxxxxxx'; const promise = wechat; promise;
小程序支付
const default: Wechat = ; const params = appid: 'wx1111111111' mch_id: '1111111111' partnerKey: 'xxxxxxxxx' ; const wechat = params; const data = appid: 'wx1111111111' mch_id: '1111111111' body: '扫码支付' out_trade_no: 'DD2018051401' total_fee: 1 notify_url attach spbill_create_ip: '127.0.0.1' openid: 'xxxxxxx' ; const promise = wechat; promise; > 如果调用成功的返回结果是: return_code: 'SUCCESS' return_msg: 'OK' appid: 'wx1111111111' mch_id: '1111111111' nonce_str: 'bfVr6Do1oU74o1iZ' sign: 'B112A7790273FC9E55D6CF6803EB80D0' result_code: 'SUCCESS' prepay_id: 'wx111111111111111111111111111111'
企业付款到用户零钱
调用付款给用户的参数和证书的获取方式见下面链接:
const default: Wechat = ; const params = appid: 'wx1111111111' mch_id: '1111111111' partnerKey: 'xxxxxxxxx' appSecret: 'xxxxxxxx' ; const wechat = params; const data = partner_trade_no: 'DD2018051401' openid: 'xxxxx' check_name: "FORCE_CHECK" amount: 1 desc: '付款备注' const certUrl = '/etc/cert/cert.p12' const promise = wechat; promise;