0.0.4 • Published 3 years ago

@axolo/node-wechat-mp v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

node-wechat-mp

Wechat mini program SDK for Node.js.

install

yarn install @axolo/node-wechat-mp

api

constructor(config)

config params

paramdescription
appIdWechat miniprogram appId, required
appSecretWechat miniprogram appSecret, required
errorerror class, default WechatMpError
cachetoken cache, default cache-manager single memory caching, ttl 7200
httphttp client, default axios
urlrequest url of api
url.basebase url, default https://api.weixin.qq.com/cgi-bin
url.tokenget token, default https://api.weixin.qq.com/cgi-bin/token
url.code2sessioncode2Session, default https://api.weixin.qq.com/sns/jscode2session

code2session(params)

see code2Session

paramdescription
jsCodecode of wx.login() result
grantTypeauthorization_code
methodGET

return Promise of auth session

decrypt(params)

see signature

paramdescription
sessionKeysessionKey of auth.code2session()
encryptedDataencrypted data
iviv

return Object of decrypted data

token(options)

get access token from caching or request

paramdescription
options.methodhttp method, default GET
options.grantTypeOAuth2 grant type, default client_credential

return Object of access token

request(options)

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

paramsdescription
optionsusage 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'
}