UNPKG

4.64 kBTypeScriptView Raw
1/**
2 * @author tudou527
3 * @email [tudou527@gmail.com]
4*/
5/// <reference types="node" />
6import AliPayForm from './form';
7/**
8 * @interface AlipaySdkConfig SDK 配置
9 */
10export interface AlipaySdkConfig {
11 /** 应用ID */
12 appId: string;
13 /** 应用私钥字符串。RSA签名验签工具:https://docs.open.alipay.com/291/106097)*/
14 privateKey: string;
15 /** 签名种类 */
16 signType?: 'RSA2' | 'RSA';
17 /** 支付宝公钥(需要对返回值做验签时候必填) */
18 alipayPublicKey?: string;
19 /** 网关 */
20 gateway?: string;
21 /** 网关超时时间(单位毫秒,默认 5s) */
22 timeout?: number;
23 /** 是否把网关返回的下划线 key 转换为驼峰写法 */
24 camelcase?: boolean;
25 /** 编码(只支持 utf-8) */
26 charset?: 'utf-8';
27 /** api版本 */
28 version?: '1.0';
29 /** 指定 urllib 库 */
30 urllib?: any;
31 /** 指定private key类型, 默认: PKCS1, PKCS8: PRIVATE KEY, PKCS1: RSA PRIVATE KEY */
32 keyType?: 'PKCS1' | 'PKCS8';
33 /** 应用公钥证书文件路径 */
34 appCertPath?: string;
35 /** 应用公钥证书文件内容 */
36 appCertContent?: string | Buffer;
37 /** 应用公钥证书sn */
38 appCertSn?: string;
39 /** 支付宝根证书文件路径 */
40 alipayRootCertPath?: string;
41 /** 支付宝根证书文件内容 */
42 alipayRootCertContent?: string | Buffer;
43 /** 支付宝根证书sn */
44 alipayRootCertSn?: string;
45 /** 支付宝公钥证书文件路径 */
46 alipayPublicCertPath?: string;
47 /** 支付宝公钥证书文件内容 */
48 alipayPublicCertContent?: string | Buffer;
49 /** 支付宝公钥证书sn */
50 alipayCertSn?: string;
51 /** AES密钥,调用AES加解密相关接口时需要 */
52 encryptKey?: string;
53 /** 服务器地址 */
54 wsServiceUrl?: string;
55}
56export interface AlipaySdkCommonResult {
57 /** 响应码。10000 表示成功,其余详见 https://opendocs.alipay.com/common/02km9f */
58 code: string;
59 /** 响应讯息。Success 表示成功。 */
60 msg: string;
61 /** 错误代号 */
62 sub_code?: string;
63 /** 错误辅助信息 */
64 sub_msg?: string;
65 /** 请求返回内容,详见各业务接口 */
66 [key: string]: any;
67}
68export interface IRequestParams {
69 [key: string]: any;
70 /** 业务请求参数 */
71 bizContent?: Record<string, any>;
72 /** 自动AES加解密 */
73 needEncrypt?: boolean;
74}
75export interface IRequestOption {
76 validateSign?: boolean;
77 log?: {
78 info(...args: any[]): any;
79 error(...args: any[]): any;
80 };
81 formData?: AliPayForm;
82}
83/**
84 * Alipay SDK for Node.JS
85 */
86declare class AlipaySdk {
87 private sdkVersion;
88 config: AlipaySdkConfig;
89 /**
90 * @class
91 * @param {AlipaySdkConfig} config 初始化 SDK 配置
92 */
93 constructor(config: AlipaySdkConfig);
94 private formatKey;
95 private formatUrl;
96 private multipartExec;
97 /**
98 * 生成请求字符串,用于客户端进行调用
99 * @param {string} method 方法名
100 * @param {IRequestParams} params 请求参数
101 * @param {object} params.bizContent 业务请求参数
102 * @return {string} 请求字符串
103 */
104 sdkExec(method: string, params: IRequestParams): string;
105 /**
106 * 生成网站接口请求链接或表单
107 * @param {string} method 方法名
108 * @param {IRequestParams} params 请求参数
109 * @param {object} params.bizContent 业务请求参数
110 * @param {string} params.method 后续进行请求的方法。如为 GET,即返回 http 链接;如为 POST,则生成表单 html
111 * @return {string} 请求链接或表单 HTML
112 */
113 pageExec(method: string, params: IRequestParams & {
114 method?: 'GET' | 'POST';
115 }): string;
116 private _pageExec;
117 private notifyRSACheck;
118 /**
119 * @ignore
120 * @param originStr 开放平台返回的原始字符串
121 * @param responseKey xx_response 方法名 key
122 */
123 getSignStr(originStr: string, responseKey: string): string;
124 exec<T = {}>(method: string, params?: IRequestParams, option?: Omit<IRequestOption, 'formData'>): Promise<AlipaySdkCommonResult & T>;
125 exec(method: string, params?: IRequestParams, option?: IRequestOption): Promise<AlipaySdkCommonResult | string>;
126 checkResponseSign(signStr: string, responseKey: string): boolean;
127 /**
128 * 通知验签
129 * @param {JSON} postData 服务端的消息内容
130 * @param {Boolean} raw 是否使用 raw 内容而非 decode 内容验签
131 * @return { Boolean } 验签是否成功
132 */
133 checkNotifySign(postData: any, raw?: boolean): boolean;
134}
135export default AlipaySdk;