微信支付 SDK,支持刷卡支付、公众号支付、扫码支付、APP 支付、H5 支付,以及优惠券,红包,企业付款,微信代扣
- 使用 Typescript 编写,拥有更安全的类型和更好的代码提示
- 支持所有类型微信支付
- 支持微信代扣
- 提供调试模式
const path = require("path");
const fs = require("fs");
const {
PubPay,
RequestError,
CommunicationError,
utils: { getXMLBody }
} = require("@sigodenjs/wechatpay");
const pay = new PubPay({
appId: "wxb80e5bddb2d804f3",
key: "6Q9VX4N3WTBM9G9XBL7H1L9PB9ANHLY7",
mchId: "1434712502",
pfx: fs.readFileSync(path.resolve(__dirname, "cert.p12"))
});
// 调用统一下单接口
pay
.unifiedOrder({
body: "腾讯充值中心-QQ会员充值",
out_trade_no: "1217752501201407033233368018",
total_fee: 888,
spbill_create_ip: "8.8.8.8",
notify_url: "https://example.com/wechatpay/notify",
trade_type: "JSAPI",
openid: "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
})
.then(res => {
if (!pay.verifySign(res)) {
// 签名校验失败
throw new Error("签名校验失败");
}
if (res.result_code === "FAIL") {
console.log(res.err_code, res.err_code_des);
} else {
console.log(res.prepay_id);
}
})
.catch(err => {
if (err instanceof RequestError) {
// 请求错误
} else if (err instanceof CommunicationError) {
// return_code = FAIL
}
});
// 支付结果通知
router.post("/wechatpay/notify", (req, res) => {
const options = {
length: req.headers["content-length"],
limit: "1mb",
encoding: "utf8"
};
getXMLBody(req, options).then(data => {
pay
.payNotify(data, async parsedData => {
if (!pay.verifySign(parsedData)) {
// 签名校验失败
}
if (parsedData.result_code === "FAIL") {
// 业务逻辑失败
}
// ...
return {
return_code: "SUCCESS",
return_msg: "OK"
};
})
.then(returnData => {
res.set("Content-Type", "application/xml; charset=utf-8");
res.end(returnData);
});
});
});
- AppPay: APP 支付
- Bank: 企业付款
- Coupon: 代金券
- LitePay: 小程序支付
- PubPay: 公众号支付
- PubQrPay: 扫码支付
- PubScanPay: 刷卡支付
- RedPack: 现金红包
- WapPay: H5 支付
- AppEntrust: APP 代扣
- LiteEntrust: 小程序代扣
- PubEntrsut: 公众号代扣
- WapEntrust: H5 代扣
如果你只使用了某一项支付,请使用业务类。但如果涉及多种支付,使用综合类更便捷。
- batchQueryComment: 拉取订单评价数据
- downloadBill: 下载对账单
- downloadFundFlow: 下载资金账单
- orderQuery: 查询订单
- refund: 申请退款
- refundNotify: 退款结果通知处理
- refundQuery: 查询退款
- report: 交易保障
- closeOrder: 关闭订单
- payNotify: 支付结果通知
- unifiedOrder: 统一下单
- authCodeToOpenId - 授权码查询 OpenId
- microPay - 提交刷卡支付
- reverse - 撤销订单
- shortURL - 短链接转换
- getPublicKey: 获取 RSA 加密公钥
- getTransferInfo: 查询企业付款到零钱
- payBank: 企业付款到银行卡
- queryBank: 查询企业付款到银行卡
- transfers: 企业付款到零钱
- queryCouponStock: 查询代金券批次
- queryCouponsInfo: 查询代金券信息
- sendCoupon: 发放代金券
- getHbInfo: 查询红包记录
- sendGroupGroupRedPack: 发放裂变红包
- sendRedPack: 发放普通红包
- contractNotify: 签约,解约结果通知
- contractOrder: 支付中签约
- deleteContract: 申请解约
- entrust: 纯签约
- papOrderQuery: 查询订单
- papPayApply: 申请扣款
- papPayNotify: 扣款结果通知
- queryContract: 查询签约关系
- downloadBill: 下载对账单
- refund: 申请退款
- refundQuery: 查询退款
Copyright (c) 2018 sigoden
Licensed under the MIT license.