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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@axolo/node-wechat-mp

v0.0.4

Published

Wechat mini program SDK for Node.js.

Downloads

17

Readme

node-wechat-mp

Wechat mini program SDK for Node.js.

install

yarn install @axolo/node-wechat-mp

api

constructor(config)

config params

| param | description | | ---------------- | ------------------------------------------------------------------------ | | appId | Wechat miniprogram appId, required | | appSecret | Wechat miniprogram appSecret, required | | error | error class, default WechatMpError | | cache | token cache, default cache-manager single memory caching, ttl 7200 | | http | http client, default axios | | url | request url of api | | url.base | base url, default https://api.weixin.qq.com/cgi-bin | | url.token | get token, default https://api.weixin.qq.com/cgi-bin/token | | url.code2session | code2Session, default https://api.weixin.qq.com/sns/jscode2session |

code2session(params)

see code2Session

| param | description | | --------- | ------------------------- | | jsCode | code of wx.login() result | | grantType | authorization_code | | method | GET |

return Promise of auth session

decrypt(params)

see signature

| param | description | | ------------- | --------------------------------- | | sessionKey | sessionKey of auth.code2session() | | encryptedData | encrypted data | | iv | iv |

return Object of decrypted data

token(options)

get access token from caching or request

| param | description | | ----------------- | ---------------------------------------------- | | options.method | http method, default GET | | options.grantType | OAuth2 grant type, default client_credential |

return Object of access token

request(options)

request wechat api with access token by short url without base url

| params | description | | ------- | ------------------------------------------- | | options | usage like axios, but aliases NOT support |

return response data of wechat api

example

decrypt data.

'use strict';

const WechatMp = require('@axolo/node-wechat-mp');

const config = {
  appId: 'YOUR_WECHAT_MINIPROGRAM_APPID',
  appSecret: 'YOUR_WECHAT_MINIPROGRAM_APPSECRET',
};

const wechatMp = new WechatMp(config);

const decrypted = wechatMp.decrypt({
  sessionKey: 'session_key of code2session()',
  encryptedData: 'base64 encrypted data',
  iv: 'base64 iv',
});

console.log(decrypted);

test

config

Add git ignored test/config.json as:

{
  "appId": "YOUR_WECHAT_MINIPROGRAM_APPID",
  "appSecret": "YOUR_WECHAT_MINIPROGRAM_APPSECRET"
}

run

See Wechat miniprogram code2Session to get js_code.

node test/code2session.test.js WECHAT_MINIPROGRAM_JS_CODE

result

Success output like this:

{
  session_key: 'WechatMiniprogram==',
  openid: 'WechatMiniprogramOpenid',
  unionid: 'WechatMiniprogramUnionid'
}