alipay-crypto
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

alipay-crypto

支付宝加解密 nodejs 版本

NPM version Codacy Badge tree shaking typescript Test coverage npm download License

Sonar

Installation

# use pnpm
$ pnpm i alipay-crypto

# use yarn
$ 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) // 'app_id=20135234674&charset=utf-8&grant_type=authorization_code&method=alipay.system.oauth.token&sign_type=RSA2&timestamp=2023-07-29 14:50:22&version=1.0'
const sign = alipayCrypto.encrypt(initial)
// or
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

Package Sidebar

Install

npm i alipay-crypto

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

20.6 kB

Total Files

7

Last publish

Collaborators

  • saqqdy