0.3.5 • Published 4 years ago
@axolo/node-wechat-pay v0.3.5
node-wechat
Wechat Pay v3 Node.js SDK.
Install
yarn add @axolo/node-wechat-payAPI
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 testTODO
- support upload
- test
Yueming Fang