@i-orz/wechat-pay
v0.0.2
Published
Wechat pay v3 Node.js SDK.
Downloads
6
Maintainers
Readme
node-wechat
Wechat Pay v3 Node.js SDK.
Install
yarn add @i-orz/wechat-pay
API
For more usage please issue.
constructor(config = {})
params
| config | required | description |
| ------------- | :------: | ------------------------------------------------------------------- |
| appId | yes | wechat pay appid |
| mchId | yes | wechat pay mchid |
| mchCert | yes | wehcat pay merchant certificate |
| mchCertKey | yes | wehcat pay merchant certificate private key |
| mchCertSn | yes | wechat pay merchant certificate serial number |
| apiV3Key | yes | wechat pay api v3 secret key |
| notifyUrl | yes | Wechat Pay Notify callback url |
| notifySuccess | | Wechat Pay Notify need response { code: 'SUCCESS' }
event types |
| platformCert | | wehcat pay platform certificate |
| currency | | default is CNY
|
| appType | | mp = miniprogram |
| http | | HTTP Client, default is built-in axios instance |
| error | | class of Error, default is WechatPayError
|
| logger | | function of logger, default is console
|
| cache | | default is {}
, it is reserved |
return
Object
of WechatPay
Node.js SDK instance.
http(config)
http client for request wechat pay API.
params
| param | required | description | | ------ | :------: | --------------- | | config | yes | config of axios |
return
Promise
of wechat pay result as axios response.
nonceStr()
return
String
of nonce_str
, random string.
timeStamp()
return
String
of timestamp
, unix timestamp second.
payRequest(payPackage, signType = 'RSA')
params
| param | required | description |
| ---------- | :------: | ------------------------------------------- |
| payPackage | yes | package of wechat pay, like prepay_id=***
|
| signType | | signType of wechat pay, default is RSA
|
return
Object
of wechat pay payment request
| prop | description |
| --------- | ------------------------------------------- |
| appId | wehcat pay appid |
| timeStamp | timestamp, seconds |
| nonceStr | nonce string |
| package | package of wechat pay, like prepay_id=***
|
| paySign | base64 signature |
| signType | signType of wechat pay, like RSA
|
notify(data)
params
| param | required | description | | ----- | :------: | -------------------------------- | | data | yes | Wechat Pay Notify request body |
return
Object
of Wechat Pay Notify decrypt resource with response suggestion.
| prop | description |
| -------- | ----------------------------------------------- |
| resource | decrytp resource |
| response | response suggestion. like { code: 'SUCCESS' }
|
Example
const fs = require('fs');
const WechatPay = require('@axolo/node-wechat-pay');
const wechatPay = new WechatPay({
appType: 'mp',
appId: 'wechat_pay_appid',
mchId: 'wechat_pay_mchid',
mchCertSn: 'wechat_pay_mch_cert_serial_no',
mchCertKey: fs.readFileSync('wehcat_pay_mch_cert_private_key.pem'),
mchCert: fs.readFileSync('wehcat_pay_mch_cert.pem'),
apiV3Key: 'wechat_pay_api_v3_secret',
notifyUrl: 'https://url-of-wechat-pay-notify',
});
wechatPay.http.get('/v3/certificates').then(res => {
wechatPay.logger.log(res.data);
}).catch(err => {
wechatPay.logger.error(err);
});
Test
yarn test
TODO
- support upload
- test
Yueming Fang