Skip to content

Latest commit

 

History

History
184 lines (152 loc) · 5.41 KB

README.md

File metadata and controls

184 lines (152 loc) · 5.41 KB

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 } = require('chuck-wechat');

const params = {
    appid: 'wx1111111111',
    mch_id: '1111111111',
    partnerKey: 'xxxxxxxxx',
    appSecret: 'xxxxxxxx',
};
const wechat = new 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.codePay(data);
promise.then((result) => { console.log(result) });

微信退款

微信退款需要多传一个退款证书的路径,不同支付的参数不一定一致,请根据不同支付传不同的参数,以下例子举的是公众号退款请求参数参考链接

const { default: Wechat } = require('chuck-wechat');

const params = {
    appid: 'wx1111111111',
    mch_id: '1111111111',
    partnerKey: 'xxxxxxxxx',
    appSecret: 'xxxxxxxx',
};
const wechat = new 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.refund(data, certUrl);
promise.then((result) => { console.log(result) });

小程序登录

请求参数参考链接

    const { default: Wechat } = require('chuck-wechat');

    const params = {
        appid: 'wx1111111111',
        appSecret: 'xxxxxxxx',
    };
    const wechat = new Wechat(params);
    const code = 'xxxxxxxxxx';
    const promise = wechat.miniLogin(code);
    promise.then((result) => { console.log(result) });

小程序支付

请求参数参考链接

    const { default: Wechat } = require('chuck-wechat');

    const params = {
        appid: 'wx1111111111',
        mch_id: '1111111111',
        partnerKey: 'xxxxxxxxx',
    };
    const wechat = new 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.miniPay(data);
    promise.then((result) => { console.log(result) });

> 如果调用成功的返回结果是:

    {
        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 } = require('chuck-wechat');

    const params = {
        appid: 'wx1111111111',
        mch_id: '1111111111',
        partnerKey: 'xxxxxxxxx',
        appSecret: 'xxxxxxxx',
    };
    const wechat = new 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.transfer(data, certUrl);
    promise.then((result) => { console.log(result) });