After a failed payment, the platform sends a notification to the merchant via the configured webhook. If delivery fails, it will retry 8 times at intervals of 5s, 20s, 1m, 5m, 30m, 2h, 24h.
Request signing is used to verify the integrity of messages between the platform and merchants. Signing occurs in two scenarios:
request.body using the merchant private key (SHA256WithRSA: compute SHA-256 hash, then RSA-encrypt with private key to produce the digital signature);Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
// When computing SHA256withRSA, convert byte stream with UTF-8 encoding to avoid incorrect signatures for Chinese parameters
signature.update(request.body);
byte[] signedHash = signature.sign();String signature = Base64.getEncoder().encodeToString(signedHash);signature request header.
Note: signing applies to request.body. When request.body is empty (e.g. query requests), no signature is required.Merchant ID
"acct_pIlscIfSOmirDp2SWk-vcQ"
Creation time in RFC3339 format: yyyy-MM-ddTHH:mm:ss.SSSXXX
"2024-05-24T14:29:32.682+08:00"
Unique identifier for the transaction
"6c2dc266-09ad-4235-b61a-767c7cd6d6ea"
Message subscription name
"issuing.transaction.failed"
Version
"2019-09-09"