npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

chuck-wechat

v0.1.14

Published

wechat

Downloads

75

Readme

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) });