A TypeScript SDK for the RainbowEasyPay.
npm install rainbow-epay-sdkA TypeScript SDK for the EasyPay interface, utilizing Axios for requests. Supports Node.js and modern browsers.
bash
npm install rainbow-epay-sdk
or
yarn add rainbow-epay-sdk
`
Usage
$3
`typescript
import { EasyPay } from 'rainbow-epay-sdk';
const pay = new EasyPay({
domain: 'http://pay.hackwl.cn',
pid: 'YOUR_PID',
key: 'YOUR_KEY',
notify_url: 'http://example.com/notify', // Optional global default
return_url: 'http://example.com/return' // Optional global default
});
`
$3
Returns a URL. Redirect the user to this URL to complete payment.
`typescript
const url = pay.pay({
type: 'alipay',
out_trade_no: '20230101001',
name: 'Test Product',
money: '0.01'
// notify_url and return_url will be used from config if not provided here
});
console.log('Payment URL:', url);
`
$3
Returns a JSON object containing the payment link (payurl, qrcode, or urlscheme).
`typescript
try {
const result = await pay.mapi({
type: 'wxpay',
out_trade_no: '20230101002',
name: 'API Payment',
money: '0.01',
clientip: '127.0.0.1',
device: 'pc'
});
console.log(result); // { code: 1, payurl: '...', ... }
} catch (err) {
console.error(err);
}
`
$3
`typescript
async function checkOrder() {
try {
const result = await pay.order('20230101001');
console.log(result);
} catch (err) {
console.error(err);
}
}
`
$3
`typescript
async function undoOrder() {
try {
// trade_no (system) or out_trade_no (merchant), money defaults to full
const result = await pay.refund(null, '20230101001', '0.01');
console.log(result);
} catch (err) {
console.error(err);
}
}
`
Methods
- pay(args): Page Jump (GET URL)
- mapi(args): API Payment (POST JSON)
- query(): Merchant Info
- settle(): Settlement Records
- order(out_trade_no): Single Order Query
- orders(): Batch Order Query
- refund(trade_no, out_trade_no, money): Refund
Test
Run the basic test case:
`bash
npm test
`This will:
1. Build the SDK
2. Run
test/basic.cjs, which:
- Creates an EasyPay` instance