9 Star 35 Fork 10

TheNorthMemory/wechatpay-axios-plugin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index.d.ts 28.28 KB
一键复制 编辑 原始数据 按行查看 历史
TheNorthMemory 提交于 2025-03-30 12:51 +08:00 . feat!: dropped supporting RSA_PKCS1_PADDING
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
/// <reference types="node" />
import { AgentOptions } from "https";
import { CipherKey, BinaryLike, KeyLike, KeyObject } from 'crypto'
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
import { default as Base } from '@thenorthmemory/multipart';
/**
* Wechatpay Axios Plugin
*/
export namespace WechatpayAxiosPlugin {
/**
* Aes - Advanced Encryption Standard
*/
class Aes {
/**
* @property {object} pkcs7 - The PKCS7 padding/unpadding container
*/
static get pkcs7(): {
/**
* padding, 32 bytes/256 bits `secret key` may optional need the last block.
* @memberof Aes.pkcs7#
*
* @param {BinaryLike} thing - The input
* @param {boolean} [optional = true] - The flag for the last padding, default `true`
*
* @return {Buffer} - The PADDING tailed payload
*/
padding(thing: BinaryLike, optional?: boolean): Buffer;
/**
* unpadding
* @memberof Aes.pkcs7#
*
* @param {BinaryLike} thing - The input
* @return {Buffer} - The PADDING wiped payload
*/
unpadding(thing: BinaryLike): Buffer;
};
}
/**
* Aes - Advanced Encryption Standard
*/
namespace Aes {
/**
* Aes encrypt/decrypt using `aes-256-gcm` algorithm with `AAD`.
*/
class AesGcm {
/**
* Encrypts plaintext.
*
* @param {string} plaintext - Text to encode.
* @param {CipherKey} key - The secret key.
* @param {BinaryLike} iv - The initialization vector.
* @param {string} aad - The additional authenticated data, maybe empty string.
*
* @returns {string} Base64-encoded ciphertext.
*/
static encrypt(plaintext: string, key: CipherKey, iv: BinaryLike, aad?: string): string;
/**
* Decrypts ciphertext.
*
* @param {string} ciphertext - Base64-encoded ciphertext.
* @param {CipherKey} key - The secret key.
* @param {BinaryLike} iv - The initialization vector.
* @param {string} aad - The additional authenticated data, maybe empty string.
*
* @returns {string} Utf-8 plaintext.
*/
static decrypt(ciphertext: string, key: CipherKey, iv: BinaryLike, aad?: string): string;
}
/**
* Aes encrypt/decrypt using `aes-256-ecb` algorithm with pkcs7padding.
*/
class AesEcb {
/**
* Encrypts plaintext.
*
* @param {string} plaintext - Text to encode.
* @param {CipherKey} key - The secret key.
*
* @returns {string} Base64-encoded ciphertext.
*/
static encrypt(plaintext: string, key: CipherKey): string;
/**
* Decrypts ciphertext.
*
* @param {string} ciphertext - Base64-encoded ciphertext.
* @param {CipherKey} key - The secret key.
*
* @returns {string} Utf-8 plaintext.
*/
static decrypt(ciphertext: string, key: CipherKey): string;
}
/**
* Aes encrypt/decrypt using `aes-128-cbc` algorithm with pkcs7padding.
*/
class AesCbc {
/**
* Encrypts plaintext.
*
* @param {string} plaintext - Text to encode.
* @param {CipherKey} key - The secret key.
* @param {BinaryLike} [iv] - The initialization vector.
*
* @returns {string} Base64-encoded ciphertext.
*/
static encrypt(plaintext: string, key: CipherKey, iv: BinaryLike): string;
/**
* Decrypts ciphertext.
*
* @param {string} ciphertext - Base64-encoded ciphertext.
* @param {CipherKey} key - The secret key.
* @param {BinaryLike} [iv] - The initialization vector.
*
* @returns {string} Utf-8 plaintext.
*/
static decrypt(ciphertext: string, key: CipherKey, iv: BinaryLike): string;
}
}
/**
* Crypto hash functions utils.
*/
class Hash {
static ALGO_MD5: 'MD5';
static ALGO_HMAC_SHA256: 'HMAC-SHA256';
static isKeyObject(thing: any): boolean;
static keyObjectFrom(thing: BinaryLike|KeyObject): KeyObject;
/**
* Calculate the input string with an optional secret `key` in MD5,
* when the `key` is Falsey, this method works as normal `MD5`.
*
* @since v0.9.2 - The first argument is supported a `KeyObject`.
*
* @param {BinaryLike|KeyObject} thing - The input.
* @param {CipherKey} [key] - The secret key.
* @param {boolean|number|string} [agency = false] - `true` or better of the `AgentId` value.
*
* @return {string} - data signature
*/
static md5(thing: BinaryLike|KeyObject, key?: CipherKey, agency?: boolean | number | string): string;
/**
* Calculate the input string with a secret `key` as of `algorithm` string which is one of the 'sha256', 'sha512' etc.
* @param {BinaryLike} thing - The input.
* @param {CipherKey} key - The secret key.
* @param {string} [algorithm = 'sha256'] - The algorithm string, default is `sha256`.
* @return {string} - data signature
*/
static hmac(thing: BinaryLike, key: CipherKey, algorithm?: string): string;
/**
* Calculate the input in SHA1.
* @param {BinaryLike} thing - The input.
* @return {string} - data signature
*/
static sha1(thing: BinaryLike): string;
/**
* Calculate the input in SHA256.
* @param {BinaryLike} thing - The input.
* @return {string} - data signature
*/
static sha256(thing: BinaryLike): string;
/**
* Wrapping the builtins `crypto.timingSafeEqual` function.
* @param {BinaryLike} known - The string of known length to compare against.
* @param {BinaryLike} [user] - The user-supplied string.
* @return {boolean} - Returns true when the two are equal, false otherwise.
*/
static equals(known: BinaryLike, user?: BinaryLike): boolean;
/**
* Utils of the data signature calculation.
* @param {'MD5'|'HMAC-SHA256'} type - The sign type, one of the MD5 or HMAC-SHA256.
* @param {object} data - The input data.
* @param {CipherKey} key - The secret key string.
* @return {string} - The data signature.
*/
static sign(type: 'MD5' | 'HMAC-SHA256', data: object, key: CipherKey): string;
}
/**
* An Axios customizaton transform.
*/
class Transformer {
constructor(mchid?: string, secret?: KeyLike);
/**
* Compose the pre-request data signature
*
* Note here: While the [MCHID] is set, then checking the input data matching with it.
*
* @param {object} data - The API request parameters
* @return {object} - With data signature
*/
signer(data: object): object;
/**
* Translation the javascript's object to the XML string
* @param {object} data - The API request parameters
* @return {string} - XML string
*/
static toXml(data: object): string;
/**
* @property {array} request - @see {import('axios').AxiosTransformer}
*/
get request(): (typeof this.signer | typeof Transformer.toXml)[];
/**
* Translation the XML string to the javascript's object.
* @param {string} xml - XML string
* @return {object} - Parsed as object
*/
static toObject(xml: string): object;
/**
* Validation the response data with the `sign` string.
* @param {object} data - The API response data
* @return {object} - The API response data
*/
verifier(data: object): object;
/**
* @property {array} response - @see {import('axios').AxiosTransformer}
*/
get response(): (typeof Transformer.toObject | typeof this.verifier)[];
}
/**
* Provides easy used methods using in this project.
*/
class Formatter {
/**
* Cast the `CSV` bill.
*
* @param {string|Buffer} buffer - CSV file content.
*
* @returns {object} - The casted source intputs as {rows, summary} Object
*/
static castCsvBill(buffer: string | Buffer): object;
/**
* Cast the `CSV` line string by the keys named object.
*
* @param {string} row - CSV line.
* @param {array} [keys] - CSV headers.
* @param {boolean} [skipFirstChar = true] - Skip the first character of the CSV line, default is true.
* @param {string} [separator = ',`'] - Split separator, default is ',`' (two chars).
*
* @returns {object} - The casted source line as Object
*/
static castCsvLine(row: string, keys?: string[], skipFirstChar?: boolean, separator?: string): object;
/**
* Generate a Base62 random string aka `nonce`, similar as `crypto.randomBytes`.
*
* @param {number} [size = 32] - Nonce string length, default is 32 bytes.
*
* @returns {string} Base62 random string.
*/
static nonce(size?: number): string;
/**
* Retrieve the current `Unix` timestamp.
*
* @returns {number} Epoch timestamp.
*/
static timestamp(): number;
/**
* Formatting for the heading `Authorization` value.
*
* @param {string} mchid - The merchant ID.
* @param {string} nonce - The Nonce string.
* @param {string} signature - The base64-encoded `Rsa.sign` ciphertext.
* @param {string|number} timestamp - The `Unix` timestamp.
* @param {string} serial - The serial number of the merchant public certification.
*
* @returns {string} - The APIv3 Authorization `header` value
*/
static authorization(mchid: string, nonce: string, signature: string, timestamp: string | number, serial: string): string;
/**
* Formatting this `HTTP.request` for `Rsa.sign` input.
*
* @param {string} method - The merchant ID.
* @param {string} uri - Combined string with `URL.pathname` and `URL.search`.
* @param {string|number} timestamp - The `Unix` timestamp, should be the one used in `authorization`.
* @param {string} nonce - The `Nonce` string, should be the one used in `authorization`.
* @param {string} [body = ''] - The playload string, HTTP `GET` should be an empty string.
*
* @returns {string} - The content for `Rsa.sign`
*/
static request(method: string, uri: string, timestamp: string | number, nonce: string, body?: string): string;
/**
* Formatting this `HTTP.response` for `Rsa.verify` input.
*
* @param {string|number} timestamp - The `Unix` timestamp, should be the one from `response.headers[wechatpay-timestamp]`.
* @param {string} nonce - The `Nonce` string, should be the one from `response.headers[wechatpay-nonce]`.
* @param {string} [body = ''] - The response payload string, HTTP status(`204`) should be an empty string.
*
* @returns {string} - The content for `Rsa.verify`
*/
static response(timestamp: string | number, nonce: string, body?: string): string;
/**
* Joined this inputs by for `Line Feed`(LF) char.
*
* @param {string[]} pieces - The string(s) joined by line feed.
*
* @returns {string} - The joined string.
*/
static joinedByLineFeed(...pieces: string[]): string;
/**
* Sorts an Object by key.
*
* @param {object} thing - The input object.
*
* @returns {object} - The sorted object.
*/
static ksort(thing: object): object;
/**
* Like `queryString` does but without the `sign` and `empty value` entities.
*
* @param {object} thing - The input object.
*
* @returns {string} - The sorted object.
*/
static queryStringLike(thing: object): string;
}
/**
* This SDK mandatory configuration
*/
type apiConfig = {
/** The merchant ID */
mchid: string,
/** The serial number of the merchant certificate, only for APIv3 */
serial: string,
/** The merchant private key, only for APIv3 */
privateKey: string | Buffer,
/** The wechatpay platform certificates in {serial: publicKey} format, only for APIv3 */
certs: platformCertificates,
/** The merchant secret key string, only for APIv2 */
secret?: string,
/** The merchant private key and certificate configuration for APIv2, while there were required in secure communication. */
merchant?: AgentOptions
}
type platformCertificates = {
[key: string]: KeyLike
}
/**
* Signature for the extra request config such as the `uri_template` parameter(s).
*/
type ExtraRequestConfig<T> = Omit<T, keyof AxiosRequestConfig>;
/**
* Simple and lite of `multipart/form-data` implementation, most similar to `form-data`.
*
* @since v0.7.0
* @example
* // buffer style(Synchronous)
* (new Multipart())
* .append('a', 1)
* .append('b', '2')
* .append('c', Buffer.from('31'))
* .append('d', JSON.stringify({}), 'any.json')
* .append('e', require('fs').readFileSync('/path/your/file.jpg'), 'file.jpg')
* .getBuffer();
* // stream style(Asynchronous)
* .pipe(require('fs').createWriteStream('./file3.jpg'));
*/
class Multipart extends Base {
static get [Symbol.toStringTag](): "FormData";
/**
* @returns {string} - FormData string
*/
get [Symbol.toStringTag](): "FormData";
/**
* The WeChatPay APIv3' specific, the `meta` JSON
*
* @return {object<string, string>|null} - The `meta` information.
*/
toJSON(): Multipart.MetaField | null;
}
namespace Multipart {
type FileMetaGeneral = {
filename: string
sha1: string
}
type FileMetaSpecial = {
file_name: string
file_digest: string
}
type FileMetaWithBankType = {
filename: string
sha256: string
bank_type: string
}
type FileMetaWithTransaction = {
transaction_id: string
transaction_mchid: string
transaction_sub_mchid?: string
out_trade_no: string
openid: string
sha256: string
upload_time: string
merchant_contact_information: {
consultation_phone_number: string
}
}
type FileMetaWithFapiao = {
sub_mchid?: string
file_type: 'PDF' | 'OFD'
digest_alogrithm: 'SM3'
digest: string
}
type FileMetaWithTaxiFapiao = {
company_mchid: string
region_id: number
digest_algorithm: 'DIGEST_ALGORITHM_SM3'
digest: string
}
type MetaField = FileMetaGeneral
| FileMetaSpecial
| FileMetaWithBankType
| FileMetaWithTransaction
| FileMetaWithFapiao
| FileMetaWithTaxiFapiao
class FormData extends Multipart {}
}
/**
* Provides some methods for the RSA `sha256WithRSAEncryption` with `RSA_PKCS1_OAEP_PADDING`.
*/
class Rsa {
/**
* Alias of the `RSA_PKCS1_OAEP_PADDING` mode
*/
static RSA_PKCS1_OAEP_PADDING: 4;
/**
* Alias of the `RSA_PKCS1_PADDING` mode
* @deprecated see [CVE-2023-46809](https://nodejs.org/en/blog/vulnerability/february-2024-security-releases)
*/
static RSA_PKCS1_PADDING: 1;
static KEY_TYPE_PUBLIC: 'public';
static KEY_TYPE_PRIVATE: 'private';
static isKeyObject(thing: any): boolean;
static fromPkcs8(str: string): KeyObject;
static fromPkcs1(str: string, type: 'public' | 'private'): KeyObject;
static fromSpki(str: string): KeyObject;
static from(thing: KeyLike, type: 'public' | 'private'): KeyObject;
/**
* Encrypts text with sha256WithRSAEncryption/RSA_PKCS1_OAEP_PADDING.
*
* @param {string} plaintext - Cleartext to encode.
* @param {KeyLike} publicKey - A public key.
* @param {number} [padding] - Supporting `RSA_PKCS1_OAEP_PADDING`, default is `RSA_PKCS1_OAEP_PADDING`.
*
* @returns {string} Base64-encoded ciphertext.
*/
static encrypt(plaintext: string, publicKey: KeyLike, padding?: number): string;
/**
* Decrypts base64 encoded string with `privateKey`.
*
* @param {string} ciphertext - Was previously encrypted string using the corresponding public certificate.
* @param {KeyLike} privateKey - A public key.
* @param {number} [padding] - Supporting `RSA_PKCS1_OAEP_PADDING`, default is `RSA_PKCS1_OAEP_PADDING`.
*
* @returns {string} Utf-8 plaintext.
*/
static decrypt(ciphertext: string, privateKey: KeyLike, padding?: number): string;
/**
* Creates and returns a `Sign` string that uses `sha256WithRSAEncryption`.
*
* @param {string} message - Content will be `crypto.Sign`.
* @param {KeyLike} privateKey - A PEM encoded private key certificate.
*
* @returns {string} Base64-encoded signature.
*/
static sign(message: string, privateKey: KeyLike): string;
/**
* Verifying the `message` with given `signature` string that uses `sha256WithRSAEncryption`.
*
* @param {string} message - Content will be `crypto.Verify`.
* @param {string} signature - The base64-encoded ciphertext.
* @param {KeyLike} publicKey - A PEM encoded public certificate.
*
* @returns {boolean} True is passed, false is failed.
*/
static verify(message: string, signature: string, publicKey: KeyLike): boolean;
}
/**
* Decorate the `Axios` instance
*/
class Decorator {
/**
* @property {object} defaults - The defaults configuration whose pased in `Axios`.
*/
static get defaults(): {
baseURL: string;
headers: {
Accept: string,
'Content-Type': string,
'User-Agent': string,
};
};
/**
* Deep merge the input with the defaults
*
* @param {object} config - The configuration.
*
* @returns {object} - With the built-in configuration.
*/
static withDefaults(config?: object): object;
/**
* Create an APIv2's client
*
* @param {object} config - configuration
* @param {string} [config.mchid] - The merchant ID
* @param {KeyLike} [config.secret] - The merchant secret key string
* @param {object} [config.merchant] - The merchant private key and certificate AKA {@link AgentOptions} for APIv2, while there were required in secure communication.
* @param {BinaryLike} [config.merchant.cert] - The merchant certificate in PEM format
* @param {KeyLike} [config.merchant.key] - The merchant private key in PEM format
* @param {BinaryLike} [config.merchant.pfx] - The merchant private key and certificate chain in PFX or PKCS12 format.
* @param {BinaryLike} [config.merchant.passphrase] - The merchant shared passphrase used for a single private key and/or a PFX.
*
* @returns {AxiosInstance} - The axios instance
*/
static xmlBased(config?: {
mchid?: string;
secret?: string;
merchant?: AgentOptions;
}): AxiosInstance;
/**
* APIv3's requestInterceptor
*
* @return {function} Named `signer` function
*/
static requestInterceptor(): Function;
/**
* APIv3's responseVerifier
* @param {object} certs The wechatpay platform serial and certificate(s), `{serial: publicKey}` pair
* @return {function} Named as `verifier` function
*/
static responseVerifier(certs?: platformCertificates): Function;
/**
* Create an APIv3's client
*
* @param {object} config - configuration
* @param {string} config.mchid - The merchant ID
* @param {string} config.serial - The serial number of the merchant certificate
* @param {KeyLike} config.privateKey - The merchant private key
* @param {object} config.certs - The wechatpay provider size configuration, `{serial: publicKey}` pair
*
* @returns {AxiosInstance} - The axios instance
*/
static jsonBased(config?: {
mchid: string;
serial: string;
privateKey: KeyLike;
certs: platformCertificates;
}): AxiosInstance;
/**
* Decorate factory
* @param {object} config - configuration
* @param {string} config.mchid - The merchant ID
* @param {string} config.serial - The serial number of the merchant certificate
* @param {KeyLike} config.privateKey - The merchant private key
* @param {object} config.certs - The wechatpay provider size configuration, `{serial: publicKey}` pair
* @param {KeyLike} [config.secret] - The merchant secret key for APIv2
* @param {object} [config.merchant] - The merchant private key and certificate AKA {@link AgentOptions} for APIv2, while there were required in secure communication.
* @param {BinaryLike} [config.merchant.cert] - The merchant certificate in PEM format
* @param {KeyLike} [config.merchant.key] - The merchant private key in PEM format
* @param {BinaryLike} [config.merchant.pfx] - The merchant private key and certificate chain in PFX or PKCS12 format.
* @param {BinaryLike} [config.merchant.passphrase] - The merchant shared passphrase used for a single private key and/or a PFX.
* @constructor
*/
constructor(config: apiConfig & AxiosRequestConfig);
/**
* Getter APIv2's client (xmlBased)
*
* @returns {AxiosInstance} - The axios instance
*/
get v2(): AxiosInstance;
/**
* Getter APIv3's client (jsonBased)
*
* @returns {AxiosInstance} - The axios instance
*/
get v3(): AxiosInstance;
/**
* Request the remote `pathname` by a HTTP `method` verb
*
* @param {string} [pathname] - The pathname string.
* @param {string} [method] - The method string.
* @param {any} [data] - The data.
* @param {any} [config] - The config.
*
* @returns {PromiseLike} - The `AxiosPromise`
*/
request<T = any, R = AxiosResponse<T>, D = any>(pathname?: string | undefined, method?: string | undefined, data?: object | any, config?: ExtraRequestConfig<D> & AxiosRequestConfig): PromiseLike<R>;
}
/**
* Promise based and chained WeChatPay OpenAPI v2&v3's client.
*
* @example
* const {Wechatpay,Rsa} = require('wechatpay-axios-plugin');
* const wxpay = new Wechatpay({
* mchid,
* serial,
* privateKey: Rsa.from('file:///path/to/wechatpay/apiclient_key.pem', Rsa.KEY_TYPE_PRIVATE),
* certs: {
* [`${pubkey_id}`]: Rsa.from('file:///path/to/wechatpay/publickey.pem', Rsa.KEY_TYPE_PUBLIC),
* },
* secret,
* merchant: {
* cert,
* key,
* // pfx,
* // passphase,
* }
* });
*
* wxpay.v2.pay.micropay({}).then(console.info).catch(console.error);
*
* wxpay.v2.secapi.pay.refund.POST({}).then(console.info).catch(console.error);
*
* wxpay.v3.marketing.busifavor.stocks.post({})
* .then(({data}) => console.info(data))
* .catch(({response: {data}}) => console.error(data));
*
* wxpay.v3.pay.transactions.native.post({})
* .then(({data: {code_url}}) => console.info(code_url))
* .catch(({ response: {data}}) => console.error(data));
*
* (async () => {
* try {
* const {data: detail} = await wxpay.v3.pay.transactions.id._transaction_id_
* .get({params: {mchid: '1230000109'}, transaction_id: '1217752501201407033233368018'});
* // or simple like this
* // const {data: detail} = await wxpay.v3.pay.transactions.id['{transaction_id}']
* // .get({params: {mchid: '1230000109'}, transaction_id: '1217752501201407033233368018'});
* console.info(detail);
* } catch({response: {status, statusText, data}}) {
* console.error(status, statusText, data);
* }
* })();
*/
class Wechatpay {
// @ts-ignore: FIXEME, needs contributing
get client(): Decorator;
/**
* Constructor of the magic APIv2&v3's `chain`.
* @param {object} config - @see {apiConfig}
* @constructor
*/
constructor(config: apiConfig & AxiosRequestConfig)
/**
* @property {function} get - The alias of the HTTP `GET` request
* @param {any} config - The request configuration
* @returns {PromiseLike} - The `AxiosPromise`
*/
// @ts-ignore: FIXEME, needs contributing
async get<T = any, R = AxiosResponse<T>>(config?: ExtraRequestConfig & AxiosRequestConfig): Promise<R>;
/**
* @property {function} post - The alias of the HTTP `POST` request
* @param {any} data - The request post body
* @param {any} config - The request configuration
* @returns {PromiseLike} - The `AxiosPromise`
*/
// @ts-ignore: FIXEME, needs contributing
async post<T = any, R = AxiosResponse<T>>(data?: T, config?: ExtraRequestConfig & AxiosRequestConfig): Promise<R>;
/**
* @property {function} put - The alias of the HTTP 'PUT' request
* @param {any} data - The request post body
* @param {any} config - The request configuration
* @returns {PromiseLike} - The `AxiosPromise`
*/
// @ts-ignore: FIXEME, needs contributing
async put<T = any, R = AxiosResponse<T>>(data?: T, config?: ExtraRequestConfig & AxiosRequestConfig): Promise<R>;
/**
* @property {function} patch - The alias of the HTTP 'PATCH' request
* @param {any} data - The request post body
* @param {any} config - The request configuration
* @returns {PromiseLike} - The `AxiosPromise`
*/
// @ts-ignore: FIXEME, needs contributing
async patch<T = any, R = AxiosResponse<T>>(data?: T, config?: ExtraRequestConfig & AxiosRequestConfig): Promise<R>;
/**
* @property {function} delete - The alias of the HTTP 'DELETE' request
* @param {any} config - The request configuration
* @returns {PromiseLike} - The `AxiosPromise`
*/
// @ts-ignore: FIXEME, needs contributing
async delete<T = any, R = AxiosResponse<T>>(config?: ExtraRequestConfig & AxiosRequestConfig): Promise<R>;
// @ts-ignore: FIXEME, needs contributing
chain(thing: string): this
[key: string]: this
}
}
export class Hash extends WechatpayAxiosPlugin.Hash{}
export class Transformer extends WechatpayAxiosPlugin.Transformer{}
export class Formatter extends WechatpayAxiosPlugin.Formatter{}
export class Aes extends WechatpayAxiosPlugin.Aes{}
export class Multipart extends WechatpayAxiosPlugin.Multipart {}
export class FormData extends Multipart {}
export class Rsa extends WechatpayAxiosPlugin.Rsa{}
export class Decorator extends WechatpayAxiosPlugin.Decorator{}
export class Wechatpay extends WechatpayAxiosPlugin.Wechatpay {}
export default Wechatpay;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
NodeJS
1
https://gitee.com/TheNorthMemory/wechatpay-axios-plugin.git
git@gitee.com:TheNorthMemory/wechatpay-axios-plugin.git
TheNorthMemory
wechatpay-axios-plugin
wechatpay-axios-plugin
master

搜索帮助