响应格式说明
所有 API 响应均采用统一的 JSON 格式。响应结果通过 code 字段标识业务执行状态,成功响应携带 data 业务数据,失败响应携带 message 错误信息。
{
"code": "0",
"message": "Success",
"data": { ... }
}
{
"code": "-1",
"message": "错误信息"
}
字段说明
code字段为字符串类型,成功时为"0",失败时为"-1"或其他错误码data字段仅在成功响应时存在,失败响应不包含此字段- 响应不包含
timestamp字段
回调通知说明
系统会在订单状态变更时,主动向商户发送回调通知。商户需要提供回调接口来接收这些通知,并依照签名规则完成验签后再更新本地订单状态。
签名验证
所有回调通知都会包含 signature 参数,商户需要验证签名以确保回调来自本系统。
签名生成规则
& 符号拼接,value 需要 urlencode 转义。signature(签名本身)、callbackUrl(回调通知 URL)、extend(商户端附加信息)。
签名示例
生成步骤演示
原始参数:merchantNo=TEST_MERCHANT, orderNo=SYS20250905113800, amount=100.00, callbackUrl=https://..., extend=附加信息
① 排序后(已排除 callbackUrl、extend):
amount=100.00&merchantNo=TEST_MERCHANT&orderNo=SYS20250905113800
② 加上 Key:
amount=100.00&merchantNo=TEST_MERCHANT&orderNo=SYS20250905113800{MD5_KEY}
③ MD5 加密:
md5(amount=100.00&merchantNo=TEST_MERCHANT&orderNo=SYS20250905113800{MD5_KEY})
完整示例
{
"merchantNo": "TEST_MERCHANT",
"merchantOrder": "WDR20250905113800",
"channel": "BANK_CARD",
"amount": "100.00",
"currency": "PHP",
"bankCode": "PH_GCASH",
"bankAccountName": "David Chen",
"bankAccountNo": "6222020000000000000",
"bankBranch": "GCASH",
"dateTime": "250905113800",
"callbackUrl": "https://your.domain/callback",
"extend": "附加信息"
}
API Key:c96a632498a1cfe803e46625c9a8bc08
生成签名前字符串(注意 bankAccountName 中的空格会被转义为 +):
amount=100.00&bankAccountName=David+Chen&bankAccountNo=6222020000000000000&bankBranch=GCASH&bankCode=PH_GCASH&channel=BANK_CARD¤cy=PHP&dateTime=250905113800&merchantNo=TEST_MERCHANT&merchantOrder=WDR20250905113800c96a632498a1cfe803e46625c9a8bc08
生成 MD5 签名:6de50bec329e43799984016b63e93be3
验签工具
提供在线验签工具便于调试:/signature-validator.html
PHP 示例代码
function generateSignature(array $params, string $key): string { // 移除不需要参与签名的字段 unset($params['extend']); unset($params['callbackUrl']); unset($params['signature']); ksort($params); // 按 key 升序排序 $parts = []; foreach ($params as $k => $v) { $parts[] = $k . '=' . urlencode((string)$v); } $beforeGenSignStr = implode('&', $parts); $beforeGenSignStr .= $key; return md5($beforeGenSignStr); }
代收申请
商户发起代收订单请求。系统受理后会返回支付链接或二维码地址,引导付款人完成支付。
请求参数 Content-Type: application/json
| 参数 | 类型 | 说明 |
|---|---|---|
| merchantNo必填 | string | 商户代码 |
| merchantOrder必填 | string | 商户订单号 |
| channel必填 | string | 渠道代码,请参考支持列表 |
| amount必填 | string<decimal> | 交易金额,单位:元,小数 2 位 |
| currency必填 | string | 币种,固定值 "PHP" |
| dateTime必填 | string<ymdHis> | 日期时间 |
| signature必填 | string | 签名字符串 |
| payerName选填 | string | 付款人姓名 |
| callbackUrl必填 | string<uri> | 回调通知 URL |
| extend选填 | string | 商户端附加信息 |
| version选填 | string | API 版本号,固定写入 V1.1 |
请求示例
{
"merchantNo": "TEST_MERCHANT",
"merchantOrder": "DEP20250905113800",
"channel": "QRPH_GCASH",
"amount": "100.00",
"currency": "PHP",
"dateTime": "250905113800",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"payerName": "David Chen",
"callbackUrl": "https://your.domain/callback",
"extend": "附加信息",
"version": "V1.1"
}
响应示例
{
"code": "0",
"message": "Success",
"data": {
"system_order_no": "system_order_no",
"provider_order_no": "provider_order_no",
"amount": 100,
"url": "https://www.example.com/pay/qr_pay?token=SDRIQA320251215204037152"
}
}
{
"code": "-1",
"message": "参数验证失败"
}
代收回调通知
此接口由商户实现,系统会主动调用。当代收订单状态变更时,系统会向商户提供的 callbackUrl 发送 POST 请求。
接收流程
success 字符串(不区分大小写)。例如:JSON {"code": 0, "message": "success"} 或直接返回文字 success。回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| type必填 | string | 交易类型:deposit |
| orderNo必填 | string | 系统订单号 |
| merchantNo必填 | string | 商户代码 |
| order_amount必填 | string | 订单金额,单位:元,小数 2 位 |
| actual_amount必填 | string | 实际到账金额,单位:元,小数 2 位 |
| currency必填 | string | 币种 |
| merchantOrder必填 | string | 商户订单号 |
| status必填 | integer | 订单状态:0=未处理 / 1=处理中 / 3=失败 / 4=成功 |
| successTime可空 | string | 成功时间(nullable) |
| extend可空 | string | 商户端附加信息(nullable) |
| providerOrderDetailNo选填 | string | 六码单号(申请时 version 填入 V1.1 才返回) |
| signature必填 | string | 签名字符串 |
回调请求示例
{
"type": "deposit",
"orderNo": "SYS20250905113800",
"merchantNo": "TEST_MERCHANT",
"order_amount": "100.00",
"actual_amount": "100.00",
"currency": "PHP",
"merchantOrder": "DEP20250905113800",
"status": 4,
"successTime": "2025-09-05 11:57:20",
"extend": "附加信息",
"providerOrderDetailNo": "123456",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}
商户响应示例
{
"code": 0,
"message": "success"
}
代收查询
主动查询某笔代收订单的当前状态与处理详情。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| merchantNo必填 | string | 商户代码 |
| merchantOrder必填 | string | 商户订单号 |
| dateTime必填 | string<ymdHis> | 日期时间 |
| signature必填 | string | 签名字符串 |
请求示例
{
"merchantNo": "TEST_MERCHANT",
"merchantOrder": "DEP20250905113800",
"dateTime": "250905113800",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}
响应示例
{
"code": "0",
"message": "Success",
"data": {
"type": "deposit",
"orderNo": "orderNo",
"merchantNo": "merchantNo",
"order_amount": "200.00",
"actual_amount": "200.00",
"currency": "PHP",
"merchantOrder": "merchantOrder",
"status": 4,
"successTime": "2025-12-15 15:28:05",
"extend": null,
"providerOrderDetailNo": "123456",
"signature": "c4701e72a5c59bcf2fb010ad685d57ea"
}
}
代付申请
商户向指定的收款银行账户发起代付请求。系统受理后将订单进入处理流程,并通过回调通知最终结果。
· 代付申请一旦提交,若未收到明确成功时,请联系客服询问,避免重复出款。
· 请求超时,请勿列为失败订单,请联系客服询问。
· HTTP 5XX 状态都是发生在双方网络沟通异常,请勿列为失败订单。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| merchantNo必填 | string | 商户代码 |
| merchantOrder必填 | string | 商户订单号 |
| channel必填 | string | 渠道代码,请参考支持列表 |
| amount必填 | string<decimal> | 交易金额,单位:元,小数 2 位 |
| currency必填 | string | 币种,固定值 "PHP" |
| bankCode必填 | string | 收款人银行代码,请参考支持列表 |
| bankAccountName必填 | string | 收款人银行卡姓名 |
| bankAccountNo必填 | string | 收款人银行卡卡号 |
| bankBranch选填 | string | 收款人银行支行 |
| dateTime必填 | string<ymdHis> | 日期时间 |
| signature必填 | string | 签名字符串 |
| callbackUrl必填 | string<uri> | 回调通知 URL |
| extend选填 | string | 商户端附加信息 |
| version选填 | string | API 版本号,填入 V1.1 时回调及查询会多返回 providerReferenceNo |
请求示例
{
"merchantNo": "TEST_MERCHANT",
"merchantOrder": "WDR20250905113800",
"channel": "BANK_CARD",
"amount": "100.00",
"currency": "PHP",
"bankCode": "PH_GCASH",
"bankAccountName": "David Chen",
"bankAccountNo": "6222020000000000000",
"bankBranch": "GCASH",
"dateTime": "250905113800",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"callbackUrl": "https://your.domain/callback",
"extend": "附加信息",
"version": "V1.1"
}
响应示例
{
"code": "0",
"message": "Success",
"data": {
"merchant_order_no": "merchant_order_no",
"system_order_no": "system_order_no",
"provider_order_no": "provider_order_no",
"amount": 100,
"order_status": 0
}
}
代付回调通知
此接口由商户实现,系统会主动调用。当代付订单状态变更(成功 / 失败 / 处理中)时,系统会向 withdrawApply 时提供的 callbackUrl 发送 POST 请求。
接收流程
success 字符串。回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| type必填 | string | 交易类型:withdraw |
| orderNo必填 | string | 系统订单号 |
| merchantNo必填 | string | 商户代码 |
| amount必填 | string | 代付金额,单位:元,小数 2 位 |
| currency必填 | string | 币种 |
| merchantOrder必填 | string | 商户订单号 |
| status必填 | string | 订单状态:0=未处理中 / 1=处理中 / 3=失败 / 4=成功 |
| successTime可空 | string | 成功时间(nullable) |
| extend可空 | string | 商户端附加信息(nullable) |
| message可空 | string | 返还消息(nullable) |
| providerReferenceNo选填 | string | 参考号(申请时 version 填入 V1.1 才返回) |
| signature必填 | string | 签名字符串 |
回调请求示例
{
"type": "withdraw",
"orderNo": "SYS20250905113800",
"merchantNo": "TEST_MERCHANT",
"amount": "100.00",
"currency": "PHP",
"merchantOrder": "WDR20250905113800",
"status": "3",
"successTime": "2025-09-05 11:57:20",
"extend": "附加信息",
"message": "AC01-IncorrectAccountNumber",
"providerReferenceNo": "123456",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}
商户响应示例
{
"code": 0,
"message": "success"
}
代付查询
主动查询某笔代付订单的当前状态与处理详情。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| merchantNo必填 | string | 商户代码 |
| merchantOrder必填 | string | 商户订单号 |
| dateTime必填 | string<ymdHis> | 日期时间 |
| signature必填 | string | 签名字符串 |
请求示例
{
"merchantNo": "TEST_MERCHANT",
"merchantOrder": "WDR20250905113800",
"dateTime": "250905113800",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}
响应示例
{
"code": "0",
"message": "Success",
"data": {
"type": "withdraw",
"orderNo": "orderNo",
"merchantNo": "merchantNo",
"amount": "100.00",
"currency": "PHP",
"merchantOrder": "merchantOrder",
"status": 3,
"successTime": "2025-12-15 15:31:10",
"extend": null,
"message": "AC01-IncorrectAccountNumber",
"providerReferenceNo": "123456",
"signature": "0f5308ae44ba2922ff21ad3a7147f28b"
}
}
余额查询
查询商户账户的可用余额、冻结余额及总余额。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| merchantNo必填 | string | 商户代码 |
| dateTime必填 | string<ymdHis> | 日期时间 |
| signature必填 | string | 签名字符串 |
请求示例
{
"merchantNo": "TEST_MERCHANT",
"dateTime": "250905113800",
"signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}
响应示例
{
"code": "0",
"message": "Success",
"data": {
"available_balance": "10000.00",
"hold_balance": "0.00",
"total_balance": "10000.00"
}
}
支持列表
系统支持的支付渠道与银行列表(参考资料)。
支付渠道
用于代收 / 代付申请时的 channel 参数。
| 类型 | 渠道代码 | 渠道名称 |
|---|---|---|
| 代收 | QRPH_GCASH | GCashQR |
| 代收 | GCASH | GCash |
| 代收 | GRAB_PAY | Grab Pay |
| 代收 | PAYMAYA | Paymaya |
| 代付 | BANK_CARD | Bank Card |
支持银行
用于代付申请时选择收款银行的 bankCode 参数。