@axolo/node-wechat

0.0.5 • Public • Published

node-wechat

Wechat OpenAPI Node.js SDK.

Install

yarn add @axolo/node-wechat

API

please see src and test for more api usage.

constructor(config)

params

config description
appMode mp = MiniProgram, oa = OfficialAccount
appId Wechat appId
appSecret Wechat AppSecret
eventToken http event callback token
eventAesKey http event callback encode aes key
baseUrl base url of Wechat OpenAPI
authTokenUrl url of get wechat access token
error throw error settings
axios HTTP Client, use axios
cache cache settings, cache.manager use cache-manager
logger logger settings, use log4js

return

A instance of Wechat OpenAPI Node.js SDK.

execute(api, request = {}, scope = {})

more request options see axios.

params

parmas description
api querystring, Wechat OpenAPI
request.method HTTP Method
request.params HTTP querystring as Object by GET
request.body HTTP body as Object by POST/PATCH/PUT
scope scope or other options of api

return

Get data with return code from Wechat OpenAPI.

callback({ signature, timestamp, nonce, echostr })

See http event callback for help. This method use as middleware usualy.

params

params description
signature signature string
timestamp timestamp string
nonce random number
echostr random string

return

event decrypted of callback. response echostr if callback success.

Example

const WechatSdk = require('@axolo/node-wechat');
const config = { appId: 'APP_ID', appSecret: 'APP_SECRET' };
const wechat = new WechatSdk(config);

wechat.execute('/user/info', {
  params: { openid: 'openid' }
}).catch(err => {
  console.log(err);
}).then(res => {
  console.log(res);
});

Test

yarn test ./test/execute.test.js      # test execute
yarn test ./test/callback-koa.test.js # test callback

TIP: Please create .env and .env.test in project root before test.

.env

appMode = mp
appId = APP_ID
appSecret = APP_SECRET

.env.test

## http server for http event callback
httpPort = 7001

TODO

  • mode: support miniprogram, work wechat, etc.
  • test: Assertion Testing with Mocha or Jest.
  • cache: support memory, redis, mysql, etc.

Yueming Fang

Package Sidebar

Install

npm i @axolo/node-wechat

Weekly Downloads

1

Version

0.0.5

License

MIT

Unpacked Size

14.7 kB

Total Files

7

Last publish

Collaborators

  • axolo