Skip to main content
WEBHOOK
paymentAdvice‌
{
  "code": "00000000",
  "msg": "Success",
  "data": {
    "outTradeNo": "394916B2ADFD4D6CAD6CC624C88990D0",
    "merchantId": "2022000000008454",
    "tradeNo": "111781085063240962",
    "amount": "10.30",
    "currency": "PHP",
    "status": "success",
    "reference": "test",
    "responseCode": "00000000",
    "responseMsg": "Success",
    "redeemCode": "",
    "payFinishTime": "2024-04-17T06:35:09 +0000",
    "transId": "20240418SAARNBARNB1B44410558522170"
  }
}
{
  "errMessage": "成功",
  "errCode": "00000000"
}

Authorizations

signature
string
header
required

加签

加签是开放平台和商户对于交互消息完整性的校验。加签行为主要发生两个部分:

  1. 商户服务器端针对向PayAllGlobal开放平台发送的请求报文进行加签;
  2. PayAllGlobal开放平台针对通知商户的异步消息进行加签。 PayAllGlobal平台要求使用 RSA 私钥进行加签, 使用 RSA 公钥进行验签。 因此,在以上两部分描述的交互中, 存在商户公私钥、PayAllGlobal 公私钥,开发者需要使用商户私钥,对第一部分报文进行加签,使用 PayAllGlobal 公钥对第二部分消息进行验签。

加签规则如下:

  1. 使用 商户私钥对待 request.body 进行签名(SHA256WithRSA 计算原始数据的SHA-256哈希值。 使用私钥对哈希值进行签名,即使用私钥对哈希值进行RSA加密。此时得到的加密结果就是数字签名。);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
// 计算 SHA256withRSA 签名时,需要以 utf-8 的编码转换 byte 流,否则可能导致含中文参数的签名计算不正确
signature.update(request.body);
byte[] signedHash = signature.sign();
  1. 将加签内容进行 Base64 编码;
String signature = Base64.getEncoder().encodeToString(signedHash);
  1. 将编码后的内容放在请求头部 signature 参数中。 注意,加签是对 request.body 进行签名,当查询等 request.body 为空时,则无需加签。

Headers

signature
string
required

使用平台私钥对requestBody做了加签, 请使用平台公钥对requestBody做签名验证

Body

application/json
code
string
required

返回码,00000000代表成功。只代表接口请求成功,不代表订单状态。

Example:

"00000000"

msg
string
required

响应 'Success'

Example:

"Success"

data
object
required

查询返回的业务数据体

Response

200 - application/json

OK

msg
string
required

响应 'Success'(仅代表成功收到通知,不代表订单状态)

Example:

"Success"

code
string
required

仅可响应 '00000000'(仅代表成功收到通知,不代表订单状态)

Example:

"00000000"