const jsrsasign = require('jsrsasign');
const sig = new jsrsasign.KJUR.crypto.Signature({alg: "SHA256withRSA"});
let signMd5 = CryptoJS.MD5(stringSignTemp).toString()
sig.init(jsrsasign.KEYUTIL.getKey(privateKey));
sig.updateString(signMd5);
// 生成签名并以 Base64 格式输出
const sigValueHex = sig.sign();
const base64Signature = jsrsasign.hextob64(sigValueHex);//RSA 签名方式
| 名称 | 类型 | 必须 | 示例值 | 描述 |
|---|---|---|---|---|
| mch_id | String(32) | 是 | 1234567890 | 平台分配的商户号 |
| trade_type | string(10) | 是 | ALIH5 | 交易类型-看下面编号 |
| currency | string(10) | 是 | rmb | 货币编号-看下面支持的货币类型 |
| nonce | string(32) | 是 | 7VS264I5K8502SI8Z NMTM6LTKCH16CQ2 |
随机字符串 |
| user_id | string(32) | 否 | 用户ID | |
| timestamp | string | 是 | 1524822584 | 时间戳 |
| subject | String(200) | 是 | subject | 订单名称 |
| detail | String(500) | 否 | detail | 商品详情 |
| out_trade_no | string(32) | 是 | 20150806125346 | 商户系统内部的订单号,32 个字符内 |
| total_fee | float | 是 | 100.00 | 总金额,小数点最多保留2位 |
| spbill_create_ip | string | 是 | 123.12.12.123 | 终端IP |
| timeout | string | 否 | 1 | 过期时长 |
| notify_url | string | 是 | 异步地址 | |
| return_url | string | 否 | 返回地址 | |
| attach | string(150) | 否 | 异步通知时原样返回 | |
| sign_type | string | 是 | MD5 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| sign | string | 是 | D0F7DBB5574FB2C64 AE5ABCA66950A3D |
签名信息 |
| version | string(10) | 否 | 1.0.0 | 版本 |
| 编号 | 支付类型 |
|---|---|
| PIX | PIX |
| 银行编码 | 银行名称 |
|---|---|
| TCB | TECHCOMBANK (TCB) |
| 货币类型 | 货币名称 |
|---|---|
| brl | 巴西雷亚尔 |
{
'result_code':'SUCCESS',
'result_msg':'message',
'mch_id':'5221518459409',
'trade_status': 0,//version = 1.0.1 时返回
'platform_trade_no': 1539860740682,
'nonce':'2SI8ZNMTM6L',
'pay_url':'https://pay.alipay.com/afetaasd',
'qrcode':'',
'jump':'',
'sign_type':'MD5',
'sign':'D0F7DBB5574FB2C64AE5ABCA66950A3D'
}
| 名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
| mch_id | string | 是 | 平台分配的商户号 |
| out_trade_no | string | 可选 | 商户订单号 |
| trade_no | string | 可选 | 平台订单号 |
| sign | string | 是 | 签名信息 |
| sign_type | string | 否 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| version | string(10) | 否 | 版本,1.0.0 |
| 名称 | 类型 | 描述 |
|---|---|---|
| result_code | string | 返回状态,SUCCESS 成功 FAIL 失败 |
| result_msg | string | 成功 |
| mch_id | number(15) | 平台分配的商户号 |
| currency | string | 货币类型 |
| wallet | string(10) | 钱包 |
| trade_no | number(20) | 平台订单号 |
| out_trade_no | string | 商户代付单号(原样返回) |
| timestamp | number(10) | 时间戳 |
| evidence | string | 交易支付凭证 |
| eid | String(200) | 代收EID,version = 1.0.1才会显示 |
| total_fee | float | 总金额, |
| pay_total_fee | float | 实际支付金额, |
| trade_status | number(2) | 1:成功,4:客服补单成功。别的都是失败 |
| trade_type | string | |
| pay_time | string | 20250720232711,相应国家的时间 |
| nonce | string | 随机字符串 |
| attach | string(150) | 原样返回如果有的时候需要加入签名,没有传的时候不会返回,version = 1.0.1才会显示 |
| sign_type | string | 签名类型,如果有的时候需要加入签名 |
| sign | string | 签名信息 |
{
"result_code": "SUCCESS",
"result_msg": "返回成功",
"mch_id": 6076120406304,
"trade_type": "PIX",
"nonce": "006cd29afa3099bc2f017635cf6b17c7",
"timestamp": 1753066070,
"out_trade_no": "186158452035992471",
"total_fee": 20,
"trade_no": "",
"platform_trade_no": 1746874155232459,
"pay_time": "20250720232711",
"trade_status": 1,
"currency": "brl",
"sign_type": "MD5",
"eid": "E18236120202507210227s182b34841c",
"sign": "B9AF092049E3374D1D483BDB9DFA21A2"
}
| 名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
| result_code | string | 是 | 返回状态,SUCCESS 成功 FAIL 失败 |
| result_msg | string | 否 | 成功 |
| mch_id | string | 是 | 平台分配的商户号 |
| trade_type | string | 是 | 支付类型 |
| currency | string | 是 | 货币类型 |
| pay_total_fee | String(11) | 可选 | 实际支付金额,请求下单的时候,version = 1.0.1才会返回 |
| trade_status | int(1) | 可选 | 订单状态,0:待支付,1:成功,2:失败, 4:补单成功,请求下单的时候,version = 1.0.1才会返回 |
| payee_name | String(11) | 可选 | 付款人姓名,请求下单的时候,version = 1.0.1才会返回 |
| payee_document | String(11) | 可选 | 付款人CPF/CNPJ,请求下单的时候,version = 1.0.1才会返回 |
| out_trade_no | string | 是 | 商户订单号(原样返回) |
| total_fee | float | 是 | 总金额, |
| platform_trade_no | string | 是 | 平台订单号 |
| trade_no | string | 是 | Platform serial number |
| nonce | string | 是 | 随机字符串 |
| pay_time | string | 是 | 支付时间 |
| timestamp | string | 是 | 时间戳 |
| attach | string | 否 | 原样返回如果有的时候需要加入签名,没有传的时候不会返回 |
| sign_type | string | 否 | 签名类型,如果有的时候需要加入签名 |
| sign | string | 是 | 签名信息 |
| 名称 | 类型 | 必须 | 示例值 | 描述 |
|---|---|---|---|---|
| mch_id | String(32) | 是 | 1234567890 | 平台分配的商户号 |
| wallet | string(10) | 是 | A | A |
| currency | string(10) | 是 | rmb | 货币编号-看下面支持的货币类型 |
| nonce | string(32) | 是 | 7VS264I5K8502SI8Z NMTM6LTKCH16CQ2 |
随机字符串 |
| timestamp | string | 是 | 1524822584 | 时间戳 |
| bank_name | String(200) | 是 | xzxxxx dxxc | 银行卡姓名 |
| bank_no | String(200) | 是 | 123456 | 银行账号 |
| card_type | String(200) | 是 | CPF | 卡类型 PIX(CPF/CNPJ/PHONE/EMAIL/EVP),TED(CC/CP),BANK(CHECKING/SAVINGS) |
| bank_code | String(500) | 是 | PIX | 银行编码-看下面编号 |
| province | String(200) | 是 | 22222222222 | CPF Code |
| city | String(500) | BANK必填 | 6123456789 | 银行账号确认码 |
| branch | String(500) | TED/BANK必填 | xxxxxxxxx | 支行号码 |
| out_trade_no | string(32) | 是 | 20150806125346 | 商户订单号 |
| total_fee | float | 是 | 100.00 | 总金额,小数点最多保留2位 |
| notify_url | string | 可选 | 异步地址 | |
| sign | string | 是 | D0F7DBB5574FB2C64 AE5ABCA66950A3D |
签名信息 |
| attach | string(150) | 否 | sss | 原样返回如果有的时候需要加入签名,没有传的时候不会返回 |
| sign_type | string | 否 | MD5 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| version | string(10) | 否 | 1.0.0 | 版本,1.0.0 |
| 货币类型 | 货币名称 |
|---|---|
| brl | 巴西雷亚尔 |
| 编号 | 名称 | 卡类型(card_type) | 货币 |
|---|---|---|---|
| PIX | PIX | PIX(CPF/CNPJ/PHONE/EMAIL/EVP) | brl |
| TED | TED | TED(CC/CP) | brl |
| PICPAY | PICPAY | brl | |
| BANK | BANK | BANK(CHECKING/SAVINGS) | brl |
| USDT | USDT | brl |
{
"result_code": "SUCCESS",
"result_msg": "提交成功",
"mch_id": "6076120406304",
"trade_no": "2926736325558566",
'trade_status': 0,//version = 1.0.1 时返回
"nonce": "e82be4957f27c6c75159a040dd834990",
"out_trade_no": "2bfcc80c-2849-46a9-bf73-a3d6eb733ffa",
"timestamp": 1731644245,
"sign": "7DA9C68DCE3AE94327A7D1CDE852B2AA"
}
| 名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
| mch_id | string | 是 | 平台分配的商户号 |
| out_trade_no | string | 可选 | 商户订单号 |
| trade_no | string | 可选 | 平台订单号 |
| timestamp | string | 是 | 时间戳 |
| sign | string | 是 | 签名信息 |
| sign_type | string | 否 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| version | string(10) | 否 | 版本,1.0.0 |
| 名称 | 类型 | 描述 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| result_code | string | 返回状态,SUCCESS 成功 FAIL 失败 | |||||||||||||||
| result_msg | string | 成功 | |||||||||||||||
| mch_id | string | 平台分配的商户号 | |||||||||||||||
| currency | string | 货币类型 | |||||||||||||||
| wallet | string(10) | 钱包 | |||||||||||||||
| trade_no | number(20) | 平台订单号 | |||||||||||||||
| out_trade_no | string | 商户代付单号(原样返回) | |||||||||||||||
| timestamp | number(10) | 时间戳 | |||||||||||||||
| evidence | string | 交易支付凭证 | |||||||||||||||
| eid | String(200) | 代付EID,version = 1.0.1才会显示 | |||||||||||||||
| recipient | String(200) | recipient,version = 1.0.1才会显示 | |||||||||||||||
| instituicao | String(200) | 银行名称,version = 1.0.1才会显示 | |||||||||||||||
| ispb | String(200) | ispb,version = 1.0.1才会显示 | |||||||||||||||
| attach | string | 可用余额 | |||||||||||||||
| total_fee | float | 总金额, | |||||||||||||||
| actual_money | float | 总金额, | |||||||||||||||
| trade_status | number(2) | 订单状态,0:待处理,1:代付成功,2:代付失败, 3:渠道处理中, 11:全额退款,12:部分退款 | |||||||||||||||
| bank_code | string | ||||||||||||||||
| present | number(10) | ||||||||||||||||
| nonce | string | 随机字符串 | |||||||||||||||
| attach | string(150) | 原样返回如果有的时候需要加入签名,没有传的时候不会返回 | |||||||||||||||
| sign_type | string | 签名类型,目前支持RSA和 MD5,建议使用RSA签名,version = 1.0.1才会显示 | |||||||||||||||
| sign | string | 签名信息 | |||||||||||||||
| refund_list | array | 退款列表(version = 1.0.1。而且trade_status == 11 或 12,才会显示) |
|||||||||||||||
|
|||||||||||||||||
SUCCESS Sample Response:
{
"result_code": "SUCCESS",
"result_msg": "代付成功",
"mch_id": "6076120406304",
"trade_no": 2486874120333527,
"nonce": "0f27de192c19dcb14645a4db8dfcdb0e",
"out_trade_no": "185158245036069818",
"timestamp": 1753027269,
"total_fee": 10,
"actual_money": 10,
"bank_code": "PIX",
"currency": "brl",
"wallet": "A",
"evidence": "https://xxxxx/receipt/2/2486874120333527",
"attach": "",
"present": 0,
"eid": "E3571349120250720155813282b9a7b0",
"trade_status": 1,
"sign": "91364C16E4329DA8929F4F9C5F9C64B0"
}
Error Sample Response:
{
"result_code": "SUCCESS",
"result_msg": "REJECTED - CONTA NÃO AUTORIZADA PARA PAGAMENTOS ATRAVÉS DO PIX PARA PESSOA JURÍDICA.",
"mch_id": "6076120406304",
"trade_no": 2026874980042344,
"nonce": "320633b309d3feb674e123dc7d7bef12",
"out_trade_no": "186063654770570821",
"timestamp": 1753065296,
"total_fee": 15,
"actual_money": 0,
"bank_code": "PIX",
"currency": "brl",
"wallet": "A",
"evidence": "",
"attach": "",
"present": 0,
"eid": "",
"trade_status": 2,
"sign": "577D2F8DED97484F89B427043384F875"
}
Refund Sample Response:
{
"result_code": "SUCCESS",
"result_msg": "代付成功",
"mch_id": "6076120406304",
"trade_no": 2486874120333527,
"nonce": "0f27de192c19dcb14645a4db8dfcdb0e",
"out_trade_no": "185158245036069818",
"timestamp": 1753027269,
"total_fee": 10,
"actual_money": 10,
"bank_code": "PIX",
"currency": "brl",
"wallet": "A",
"evidence": "https://xxxxx/receipt/2/2486874120333527",
"attach": "",
"present": 0,
"eid": "E3571349120250720155813282b9a7b0",
"trade_status": 11,
"sign": "91364C16E4329DA8929F4F9C5F9C64B0",
"refund_list": [
{
"refund_id": "3486874120333527",
"refund_amount": 10,
"refund_time": "2025-07-24 10:20:30",
"refund_msg": "全额退款"
}
]
}
| 名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
| result_code | string | 是 | 返回状态,SUCCESS 成功 FAIL 失败 |
| result_msg | string | 否 | 成功 |
| mch_id | string | 是 | 平台分配的商户号 |
| bank_code | string | 是 | 银行编码 |
| actual_money | float | 是 | 实际到账金额,小数点最多保留2位 |
| wallet | string(10) | 是 | 钱包 |
| present | float | 是 | 手续费 |
| currency | float | 是 | 货币类型 |
| out_trade_no | string | 是 | 商户代付单号(原样返回) |
| total_fee | float | 是 | 总金额, |
| trade_no | string | 是 | 平台订单号 |
| nonce | string | 是 | 随机字符串 |
| timestamp | string | 是 | 时间戳 |
| attach | string(150) | 否 | 原样返回如果有的时候需要加入签名,没有传的时候不会返回 |
| trade_status | string | 是 | 代付状态,1:代付成功,2:代付失败 |
| sign_type | string | 否 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| sign | string | 是 | 签名信息 |
| 名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
| result_code | string | 是 | 返回状态,SUCCESS 成功 FAIL 失败 |
| result_msg | string | 否 | 成功 |
| mch_id | string | 是 | 平台分配的商户号 |
| bank_code | string | 是 | 银行编码 |
| actual_money | float | 是 | 实际到账金额,小数点最多保留2位 |
| wallet | string(10) | 是 | 钱包 |
| present | float | 是 | 手续费 |
| currency | float | 是 | 货币类型 |
| out_trade_no | string | 是 | 商户代付单号(原样返回) |
| total_fee | float | 是 | 总金额, |
| trade_no | string | 是 | 平台订单号 |
| nonce | string | 是 | 随机字符串 |
| timestamp | string | 是 | 时间戳 |
| attach | string(150) | 否 | 原样返回如果有的时候需要加入签名,没有传的时候不会返回 |
| trade_status | string | 是 | 11:全额退款,12:部分退款 |
| sign_type | string | 否 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| sign | string | 是 | 签名信息 |
| 名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
| mch_id | string | 是 | 平台分配的商户号 |
| currency | string(10) | 否 | 货币类型 -看下面编号 |
| timestamp | string | 是 | 时间戳 |
| sign | string | 是 | 签名信息 |
| sign_type | string | 否 | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| 名称 | 类型 | 描述 |
|---|---|---|
| result_code | string | 返回状态,SUCCESS 成功 FAIL 失败 |
| result_msg | string | 成功 |
| mch_id | string | 平台分配的商户号 |
| currency | string | 货币类型 |
| wallet | string(10) | 钱包 |
| account_balance | float | 总余额,小数点最多保留4位 |
| available_balance | float | 可用余额,小数点最多保留4位 |
| unavailable_balance | float | 提现中的金额,小数点最多保留4位 |
| frozen_presented | float | 冻结的金额,小数点最多保留4位 |
| nonce | string | 随机字符串 |
| sign_type | string | 签名类型,目前支持RSA和 MD5,建议使用RSA签名 |
| sign | string | 签名信息 |
{
'result_code':'SUCCESS',
'result_msg':'Message',
'currency':'rmb',
'mch_id':'5221518459409',
'account_balance':22222,
'available_balance': 3333,
'unavailable_balance': 0,
'nonce':'2SI8ZNMTM6L',
'sign':'D0F7DBB5574FB2C64AE5ABCA66950A3D'
}