UNPKG

@liuhlightning/wx-pay

Version:
135 lines 4.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WxPay = void 0; const axios_1 = __importDefault(require("axios")); const fs_1 = require("fs"); const lib_1 = require("./lib"); const nonceStr_1 = require("./util/nonceStr"); const timestamp_1 = require("./util/timestamp"); /** * 微信支付 */ class WxPay { constructor(param) { this.baseURL = "https://api.mch.weixin.qq.com"; /** * 构造鉴权字符串 */ this.buildAuthorization = lib_1.buildAuthotization; /** * 签名 */ this.sign = lib_1.sign; /** * 检查签名 */ this.checkSignature = lib_1.checkSignature; /** * 解密, 使用APIv3密钥 */ this.decrypto = lib_1.decrypto; /** * 加密, 使用微信支付公钥 */ this.encrypto = lib_1.encrypto; /** * 解密, 使用商户API私钥 */ this.decryptoByPrivateKey = lib_1.decryptoByPrivateKey; /** * jsapi下单 小程序下单 */ this.postTransactionJsApi = lib_1.postTransactionJsApi; /** * app下单 */ this.postTransactionApp = lib_1.postTransactionApp; /** * h5下单 */ this.postTransactionH5 = lib_1.postTransactionH5; /** * native下单 */ this.postTransactionNative = lib_1.postTransactionNative; /** * 构造处理支付通知函数 */ this.notifyTransactionBuilder = lib_1.notifyTransactionBuilder; /** * 处理支付通知 */ this.notifyTransaction = this.notifyTransactionBuilder(); /** * 查询订单 */ this.queryTransaction = lib_1.queryTransaction; /** * 关闭订单 */ this.closeTransaction = lib_1.closeTransaction; /** * 退款 */ this.refundTransaction = lib_1.refundTransaction; /** * 构造退款通知处理函数 */ this.notifyTransactionRefundBuilder = lib_1.notifyTransactionRefundBuilder; /** * 退款通知处理 */ this.notifyTransactionRefund = this.notifyTransactionRefundBuilder(); /** * 查询退款 */ this.queryRefund = lib_1.queryRefund; const { appId, apiv3Key, mchId, notifyUrl, wxPayPublicKeyPath, privateKeyPath, certSerial, supportFapiao = false, baseURL, timeout = 10000, axiosConfig = {}, debug = false, } = param; this.appId = appId; this.apiv3Key = apiv3Key; this.mchId = mchId; this.notifyUrl = notifyUrl; this.wxPayPublicKey = (0, fs_1.readFileSync)(wxPayPublicKeyPath, "utf-8"); this.privateKey = (0, fs_1.readFileSync)(privateKeyPath, "utf-8"); this.certSerial = certSerial; this.supportFapiao = supportFapiao; if (baseURL) this.baseURL = baseURL; // axios this.service = axios_1.default.create({ ...axiosConfig, baseURL: this.baseURL, timeout, }); this.service.interceptors.request.use((config) => { const { method, url, data, params } = config; config.headers.set("Authorization", this.buildAuthorization(url ?? "", method ?? "get", params, (0, timestamp_1.timestamp)(), (0, nonceStr_1.nonceStr)(), data)); config.headers.set("serial_no", this.certSerial); return config; }); this.request = this.service.request; // debug this.debug = debug; if (this.debug) { this.service.interceptors.request.use((config) => { console.debug("wx pay request url ", config.url); console.debug("wx pay request method ", config.method); console.debug("wx pay request params ", config.params); console.debug("wx pay request headers ", config.headers); console.debug("wx pay request data ", config.data); return config; }); this.service.interceptors.response.use((res) => { console.debug("wx pay response status ", res.status); console.debug("wx pay response headers", res.headers); console.debug("wx pay response data ", res.data); return res; }); } } } exports.WxPay = WxPay; //# sourceMappingURL=index.js.map