跳转到主要内容
WEBHOOK
issuing.transaction.succeeded
{
  "account_id": "<string>",
  "created_at": "<string>",
  "id": "<string>",
  "name": "<string>",
  "version": "<string>"
}
{
  "errCode": "<string>",
  "errMessage": "<string>"
}

授权

signature
string
header
必填

加签

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

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

加签规则如下:

  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 为空时,则无需加签。

请求体

application/json
account_id
string
必填

商户号

示例:

"acct_pIlscIfSOmirDp2SWk-vcQ"

created_at
string
必填

创建时间,符合rfc3339规范,格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX

示例:

"2024-05-24T14:29:32.682+08:00"

id
string
必填

交易的唯一标识符

示例:

"6c2dc266-09ad-4235-b61a-767c7cd6d6ea"

name
string
必填

消息订阅名称

示例:

"issuing.transaction.succeeded"

version
string
必填

版本

示例:

"2019-09-09"

data
object

响应

200 - application/json

OK

errCode
string
必填

响应状态码

示例:

"00000000"

errMessage
string
必填

错误消息

示例:

"成功"