0.1.1 • Published 6 years ago
wechat-pay-api 微信支付接口
Usage
npm i wechat-pay-api -S
const Pay = require('wechat-pay-api')
const api = new Pay({
wxappid: '',
mch_id: '',
key: '',
pfx: '',
client_ip: ''
})
api.payToUser({
openid: 'user openid',
amount: 100,
desc: '测试付款'
}, (err, result) => {
if (err) {
return console.error(err)
}
console.log(result)
})
new WechatPayApi(options)
实例化WechatPayApi,返回实例对象。
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| wxappid | string | 是 | 微信公众号appId |
| mch_id | string | 是 | 微信商户id |
| key | string | 是 | 微信商户密钥 |
| pfx | buffer | 是 | 微信商户证书,pfx格式 |
| client_ip | string | 是 | 调整支付api的机器公网ip |
| passphrase | string | 否 | 微信商户证书加密密钥,默认为mch_id |
| private_key | buffer | 否 | 微信商户私钥 |
| cert | buffer | 否 | 微信商户证书,pem格式 |
返回值
WechatPayApi 实例对象。
WechatPayApi 实例对象方法
payToUser
企业付款。
payToUser(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| openid | string | 是 | 用户openid |
| amount | number | 是 | 企业付款金额,单位为分 |
| desc | string | 是 | 企业付款操作说明信息。必填。 |
| check_name | string | 否 | 校验用户姓名选项NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名 |
| device_info | string | 否 | 微信支付分配的终端设备号 |
| re_user_name | string | 否 | 收款用户真实姓名。 如果check_name设置为FORCE_CHECK,则必填用户真实姓名 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| 以下字段在return_code为SUCCESS的时候有返回 |
| result_code | string | 业务结果SUCCESS/FAIL |
| 以下字段在return_code 和result_code都为SUCCESS的时候有返回 |
| partner_trade_no | string | 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号) |
| payment_no | string | 企业付款成功,返回的微信订单号 |
| payment_time | string | 企业付款成功时间 |
getTransferInfo
查询企业付款。
getTransferInfo(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| partner_trade_no | string | 是 | 商户调用企业付款API时使用的商户订单号 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| 以下字段在return_code为SUCCESS的时候有返回 |
| result_code | string | 业务结果SUCCESS/FAIL |
| 以下字段在return_code 和result_code都为SUCCESS的时候有返回 |
| detail_id | string | 调用企业付款API时,微信系统内部产生的单号 |
| status | string | 转账状态SUCCESS:转账成功FAILED:转账失败PROCESSING:处理中 |
| reason | string | 如果失败则有失败原因 |
| openid | string | 转账的openid |
| transfer_time | string | 发起转账的时间 |
sendRedpack
发送普通红包
sendRedpack(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| send_name | string | 是 | 红包发送者名称 |
| re_openid | string | 是 | 接受红包的用户用户在wxappid下的openid |
| total_amount | number | 是 | 付款金额,单位分 |
| total_num | number | 是 | 红包发放总人数total_num=1 |
| wishing | string | 是 | 红包祝福语 |
| act_name | string | 是 | 活动名称 |
| remark | string | 是 | 备注信息 |
| scene_id | string | 否 | 发放红包使用场景,红包金额大于200时必传PRODUCT_1:商品促销PRODUCT_2:抽奖PRODUCT_3:虚拟物品兑奖 PRODUCT_4:企业内部福利PRODUCT_5:渠道分润PRODUCT_6:保险回馈PRODUCT_7:彩票派奖PRODUCT_8:税务刮奖 |
| risk_info | string | 否 | posttime:用户操作的时间戳mobile:业务系统账号的手机号,国家代码-手机号。不需要+号deviceid :mac 地址或者设备唯一标识 clientversion :用户操作的客户端版本。把值为非空的信息用key=value进行拼接,再进行urlencodeurlencode(posttime=xx& mobile =xx&deviceid=xx) |
| consume_mch_id | string | 否 | 资金授权商户号服务商替特约商户发放时使用 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| 以下字段在return_code为SUCCESS的时候有返回 |
| result_code | string | 业务结果SUCCESS/FAIL |
| 以下字段在return_code 和result_code都为SUCCESS的时候有返回 |
| re_openid | string | 接受收红包的用户用户在wxappid下的openid |
| total_amount | string | 付款金额,单位分 |
| send_listid | string | 红包订单的微信单号 |
sendGroupRedpack
发送裂变红包
sendGroupRedpack(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| send_name | string | 是 | 红包发送者名称 |
| re_openid | string | 是 | 接受红包的用户用户在wxappid下的openid |
| total_amount | number | 是 | 付款金额,单位分 |
| total_num | number | 是 | 红包发放总人数total_num=1 |
| amt_type | string | string | 红包金额设置方式ALL_RAND—全部随机,商户指定总金额和红包发放总人数,由微信支付随机计算出各红包金额 |
| wishing | string | 是 | 红包祝福语 |
| act_name | string | 是 | 活动名称 |
| remark | string | 是 | 备注信息 |
| scene_id | string | 否 | 发放红包使用场景,红包金额大于200时必传PRODUCT_1:商品促销PRODUCT_2:抽奖PRODUCT_3:虚拟物品兑奖 PRODUCT_4:企业内部福利PRODUCT_5:渠道分润PRODUCT_6:保险回馈PRODUCT_7:彩票派奖PRODUCT_8:税务刮奖 |
| risk_info | string | 否 | posttime:用户操作的时间戳mobile:业务系统账号的手机号,国家代码-手机号。不需要+号deviceid :mac 地址或者设备唯一标识 clientversion :用户操作的客户端版本。把值为非空的信息用key=value进行拼接,再进行urlencodeurlencode(posttime=xx& mobile =xx&deviceid=xx) |
| consume_mch_id | string | 否 | 资金授权商户号服务商替特约商户发放时使用 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| 以下字段在return_code为SUCCESS的时候有返回 |
| result_code | string | 业务结果SUCCESS/FAIL |
| 以下字段在return_code 和result_code都为SUCCESS的时候有返回 |
| total_amount | string | 付款总金额,单位分 |
| send_listid | string | 微信红包订单号 |
| re_openid | string | 接受收红包的用户用户在wxappid下的openid |
getRedpackInfo
查询红包记录
getRedpackInfo(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| mch_billno | string | 是 | 商户发放红包的商户订单号 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| 以下字段在return_code为SUCCESS的时候有返回 |
| result_code | string | 业务结果SUCCESS/FAIL |
| 以下字段在return_code 和result_code都为SUCCESS的时候有返回 |
| detail_id | string | 使用API发放现金红包时返回的红包单号 |
| status | string | SENDING:发放中 SENT:已发放待领取 FAILED:发放失败 RECEIVED:已领取 RFUND_ING:退款中 REFUND:已退款 |
| send_type | string | API:通过API接口发放 UPLOAD:通过上传文件方式发放 ACTIVITY:通过活动方式发放 |
| hb_type | string | GROUP:裂变红包 NORMAL:普通红包 |
| total_num | string | 红包个数 |
| total_amount | string | 红包总金额(单位分) |
| reason | string | 发送失败原因 |
| send_time | string | 红包发送时间 |
| refund_time | string | 红包的退款时间(如果其未领取的退款) |
| refund_amount | string | 红包退款金额 |
| wishing | string | 祝福语 |
| hblist | object | 裂变红包的领取列表 |
| openid | string | 领取红包的openid |
| amount | string | 领取金额 |
| rcv_time | string | 领取红包的时间 |
sendCoupon
发放代金劵
sendCoupon(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| coupon_stock_id | string | 是 | 代金券批次id |
| openid | string | 是 | Openid信息,用户在appid下的openid。 |
| op_user_id | string | 否 | 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 |
| device_info | string | 否 | 微信支付分配的终端设备号 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| result_code | string | 业务结果SUCCESS/FAIL |
| coupon_stock_id | string | 代金券批次id |
| resp_count | string | 返回记录数 |
| success_count | string | 成功记录数 |
| failed_count | string | 失败记录数 |
| openid | string | 用户在商户appid下的唯一标识 |
| ret_code | string | 返回码,SUCCESS/FAILED |
| coupon_id | string | 对一个用户成功发放代金券则返回代金券id,即ret_code为SUCCESS的时候;如果ret_code为FAILED则填写空串"" |
| ret_msg | string | 返回信息,当返回码是FAILED的时候填写,否则填空串“” |
queryCouponStock
查询代金劵批次
queryCouponStock(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| coupon_stock_id | string | 是 | 代金券批次id |
| op_user_id | string | 否 | 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 |
| device_info | string | 否 | 微信支付分配的终端设备号 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| result_code | string | 业务结果SUCCESS/FAIL |
| coupon_stock_id | string | 代金券批次id |
| coupon_name | string | 代金券名称 |
| coupon_value | string | 代金券面值,单位是分 |
| coupon_mininumn | string | 代金券使用最低限额,单位是分 |
| coupon_stock_status | string | 批次状态: 1-未激活;2-审批中;4-已激活;8-已作废;16-中止发放; |
| coupon_total | string | 代金券数量 |
| max_quota | string | 代金券每个人最多能领取的数量, 如果为0,则表示没有限制 |
| is_send_num | string | 代金券已经发送的数量 |
| begin_time | string | 生效开始时间,格式为时间戳 |
| end_time | string | 生效结束时间,格式为时间戳 |
| create_time | string | 创建时间,格式为时间戳 |
| coupon_budget | string | 代金券预算额度 |
queryCouponsInfo
查询代金劵信息
queryCouponsInfo(options, callback)
options 对象属性
| 名称 | 类型 | 必填 | 描述 |
|---|
| coupon_id | string | 是 | 代金券id |
| openid | string | 是 | Openid信息,用户在appid下的openid。 |
| stock_id | string | 是 | 代金劵对应的批次号 |
| op_user_id | string | 否 | 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 |
| device_info | string | 否 | 微信支付分配的终端设备号 |
回调参数
| 名称 | 类型 | 描述 |
|---|
| err | error | 错误对象 |
| result | object | 结果对象 |
result 结果对象属性
| 名称 | 类型 | 描述 |
|---|
| return_code | string | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
| return_msg | string | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
| result_code | string | 业务结果SUCCESS/FAIL |
| coupon_stock_id | string | 代金券批次id |
| coupon_id | string | 代金券id |
| coupon_name | string | 代金券名称 |
| coupon_value | string | 代金券面值,单位是分 |
| coupon_mininumn | string | 代金券使用最低限额,单位是分 |
| coupon_state | string | 代金券状态:SENDED-可用,USED-已实扣,EXPIRED-已过期 |
| coupon_desc | string | 代金券描述 |
| coupon_use_value | string | 代金券实际使用金额 |
| coupon_remain_value | string | 代金券剩余金额:部分使用情况下,可能会存在券剩余金额 |
| begin_time | string | 生效开始时间,格式为时间戳 |
| end_time | string | 生效结束时间,格式为时间戳 |
| send_time | string | 发放时间,格式为时间戳 |
| send_source | string | 代金券发放来源:FULL_SEND-满送 NORMAL-普通发放场景 |
| is_partial_use | string | 该代金券是否允许部分使用标识:1-表示支持部分使用 |