UNPKG

@axolo/node-wechat

Version:
127 lines (90 loc) 3.48 kB
# node-wechat [Wechat OpenAPI] Node.js SDK. ## Install ```bash 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 ```js 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 ```bash 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 ```ini appMode = mp appId = APP_ID appSecret = APP_SECRET ``` ### .env.test ```ini ## 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 [axios]: https://github.com/axios/axios [cache-manager]: https://github.com/BryanDonovan/node-cache-manager [log4js]: https://log4js-node.github.io/log4js-node [Wechat OpenAPI]: https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html [http event callback]: https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html [return code]: https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Global_Return_Code.html