Installation
$ pnpm i alipay-crypto
$ yarn add alipay-crypto
Usage
1. Nodejs require
const AlipayCrypto = require('alipay-crypto')
const alipayCrypto = new AlipayCrypto({ privateKey: 'xxxxxx' })
const data = {
app_id: '20135234674',
method: 'alipay.system.oauth.token',
sign_type: 'RSA2',
version: '1.0',
charset: 'utf-8',
timestamp: '2023-07-29 14:50:22',
grant_type: 'authorization_code',
biz_content: ''
}
const initial = alipayCrypto.serializedParams(data)
const sign = alipayCrypto.encrypt(initial)
const sign = alipayCrypto.encrypt(data)
2. ES6 module
import AlipayCrypto from 'alipay-crypto'
const alipayCrypto = new AlipayCrypto({ privateKey: 'xxxxxx' })
Configuration
active debug mode
const alipayCrypto = new AlipayCrypto({ privateKey: 'xxxxxx', debug: true })
Types
declare class AlipayCrypto<T extends Options = Options> {
defaults: PickPartial<OauthCommonOptions, 'app_id' | 'sign' | 'timestamp'>
options: T
constructor(options: T)
serializedParams(data: SignOptions, encrypt?: boolean): string
encrypt(initial: string, privateKey?: string): string
encrypt<T extends SignOptions = SignOptions>(initial: T, privateKey?: string): string
}
export default AlipayCrypto
export declare interface OauthCodeOptions {
grant_type: 'authorization_code'
code: string
}
export declare interface OauthCommonOptions {
app_id: string
method: 'alipay.system.oauth.token'
format?: 'JSON'
charset: 'utf-8' | 'gbk' | 'gb2312'
sign_type: 'RSA' | 'RSA2'
sign: string
timestamp: string
version: '1.0' | string
app_auth_token?: string
}
export declare type OauthOptions = OauthCodeOptions | OauthRefreshOptions
export declare interface OauthRefreshOptions {
grant_type: 'refresh_token'
refresh_token: string
}
export declare type PickPartial<T, K extends keyof T> = {
[P in K]?: T[P]
} & Omit<T, K>
export declare type SerializeParams = Omit<Required<SignOptions>, 'sign'>
export declare interface SignOptions extends OauthCommonOptions {
biz_content?: string
}
Support & Issues
Please open an issue here.
License
MIT