回调通知
说明
支付完成后,支付中心会把相关支付结果和相关信息发送给商户,商户需要接收处理,并返回应答。 对后台通知交互时,如果支付中心收到商户的应答不是成功或超时,支付中心则认为通知失败,会在一定的策略定期重新发起通知,尽可能提高通知的成功率,但不保证通知最终能成功。 (通知频率为0s/15s/30s/3m/10m/20m/30m/60m/3h/6h)
注意
注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
警告
特别提醒:商户系统对于订单回调的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。
接口地址
POST 统一下单接口提交的参数notify_url设置,如果无法访问链接,您的业务系统将无法接收到支付中心的通知。
请求Body
名称 | 类型 | 说明 | 说明 |
---|---|---|---|
app_id | string | 应用ID | |
mch_id | string | 商户ID | |
create_time | time | 通知时间 | |
resource_type | string | 通知的资源数据类型,支付成功通知为encrypt-resource | |
event_type | string | 通知的类型,支付成功通知的类型为TRANSACTION.SUCCESS | |
resource | object | 通知资源数据 | |
» original_type | string | 原始回调类型,为transaction | |
» algorithm | string | 对开启结果数据进行加密的加密算法,目前只支持AES-256-ECB | |
» ciphertext | string | Base64编码后的开启/停用结果数据密文,如果开启将返回加密后的内容,解密后是交易通知详情 TransactionNotifyDetail的json字符串。 | |
» nonce | string | 加密使用的随机串 |
请求示例
{
"app_id": "xxxxx",
"mch_id": "zzzzzz",
"create_time": "2023-06-26T17:21:17.754429+08:00",
"resource_type": "encrypt-resource",
"event_type": "TRANSACTION.SUCCESS",
"resource": {
"original_type": "transaction",
"algorithm": "AEAD_AES_256_GCM",
"ciphertext": "I/psKgdkVwxbkEIWtwRxfxLzViuRS+gJTQSdLf+lmK7awoqUcIJisTAJx0Qbv4K6wV8WgyMRFYHD5CCLKmFNU2OnmEm2f2vGhaoS2h28A9BEGx1CWEUw3tfldf/+VWlBAnIBylFjHzbSo7fgn7S3fFEAZHTxoy+9jNIoynqHZbn4Y6eucj1YCw0ZmuKHPpPPrvclbhHmaZHfau+SKyag3C0/cj7zu4mBkRZ39zuk9B7DAADzaRENOZ/ZyibU+zs3gibnCbI2NWEnQWIiCi7vK0jq/FCBWytHihQM364zlVrPPCBDbv2MSqk4fyAM7IDeT6h/z/2kmDOQ6aFPYlLojIkgCCOIevQITS9E+BS1rgmmH+DRKsJNiD257aLhX2/F53VEnjfqqKdDs2lqfX0dCMLqselGUT981fFKceXg+r6hQqcUzLlF28XL5NrfVPreRDo6jI2K0tCy9cOx+cxH3yoDzOFBzM0RlxWqvUhRsMv9ZGfpgCZ0o9HxNObqLjVCQzE5SWPXvmkw+QpWk0oNUvpCEDhj9Vfq6XCV8j3tT3tZTYCa5UQy9VCdmval/2vb50QaAgDYXU6PH/9Xv7AXg6kg29iK+Ec0euxZxosRoVczzRg+0Arl/zvBcphWNIUTdx5IcA12WtP+krk9NNGtj7igk21DhcseJrKBpG7ll9O/Wmq1L8BwW+ypuJS+kHV61jRNYMFJY48Pt11Zoukgqu94kzrhz+KET8q463zlyu/Kp2z5yWI8xwvOtuyjosszfm6/YFQTFdhcmHY3X1yz44NaVG9FPev1QPoPmI7K3Jqa0Q8Q5kQTbe/KrB0eyRpXtyAaShOEeiS2ypmFAC81/m4mjuTd24yAjBcTIfBYzjxwjPbKfv+OYKahDwJP1b7EhsM+Sgu48wQ+pp6wc8TYCOkiRR1pKeb3kaxpQGzlq7VNbWHFPw9TDiyCIEnr8T5eiJtzJJ0U0iIfqN5WHk7iHiNK4Y4TvmdF4f6UyeMTHvaprvzUZI8il5wvoCgIiRUY7qvv5V/KL4ZWHN6Y3EEvQmP4WDo3Wx5IFW8C1gkyFv8lQ1COSNYMPog6RLAI0rNvKZjvc4baWwcHmk/fM92X19F2Y0DArqLFFUTJVE5bUQXQexiUO1e8IL07wqY=",
"nonce": "d8816e8d6dca4409b790a4bcaa25c621"
}
}
返回示例
success
成功收到回调请求后请返回 success
以告知通知服务器。当通知服务器收到 success
后,将停止通知。否则将会按照 0s/15s/30s/3m/10m/20m/30m/60m/3h/6h 的频率通知10次。