异步通知
# 业务系统交互流程

商户正常上报交易参数无误,发起正常的交易请求与流程,并且上送了
notifyUrl
,则会收到异步通知PingPongCheckout API v3通过 POST 商户上送的
notifyUrl
来发起通知,并以MIMEType:Content-Type:application/json
的形式组织报文商户在成功收到异步处理结果后,响应 HttpCode 为
200
并且以字符串形式返回OK
,表示商户已经成功收到异步结果通知。若未收到商户响应OK,PingPongCheckout 会在随后的一段时间内,以递增的时 间间隔重发,间隔为
5s/5s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h
。异步通知受双方网络连接状态影响,请确保通知地址公网可访问。
商户不能仅仅依赖于异步通知,如果⻓时间未收到交易结果,商户应该主动向 PingPongCheckout 发起交易查询,查询对应的交易结果。
# Notify Sever IP 与白名单
商户侧对IP有防火墙策略限制的应将IP加入白名单 以下是PingPongCheckout Notify Sever IP
生产 Notify Sever IP | 沙箱 Notify Sever IP |
---|---|
3.125.243.2 | 52.76.198.228 |
3.126.196.22 | |
18.195.199.34 |
1. notifyUrl需要填写商户自己系统的真实地址,不能随意填写
2. notifyUrl必须是以https://的完整全路径地址,并且确保url中的域名和IP是外网可以访问的,不能填写localhost、127.0.0.1、192.168.x.x等本地或内网IP
3. notifyUrl填写之前,商户需要尝试请求并自行检查网络连通性
4. notify_url请不携带参数,以免丢失参数,若一定要携带,请使用pathInfo的URL模式
5. 异步通知可能不是最终结果,可能是PROCESSING,REVIEW等中间状态,需要注意处理
6. 异步通知代码处理逻辑不能做登录态校验。
7. 同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。
# 响应报文
参数字段 | 参数属性 | 参数说明 |
---|---|---|
requestId | M | 唯一请求ID |
notificationUrl | M | 异步通知地址 |
amount | M | 交易金额 |
clientId | M | PingPong 商户号 |
accId | M | PingPong 店铺号 |
code | M | 状态码 |
threeDSecure | M | 3D标识 |
outFlowId | M | 当前PingPong交易流水号 |
signType | M | 签名类型 |
sign | M | 签名 |
description | M | 描述 |
token | C | 快捷支付相关token |
transactionTime | M | 交易时间 |
transactionId | M | PingPong交易流水号 |
checkoutType | M | 收银台类型 |
paymentType | M | 交易类型:
|
merchantTransactionId | M | 商户订单号 |
currency | M | 交易币种 |
status | M | 交易状态 |
paymentBrand | C | 卡品牌:VISA / Mastercard / American Express/ JCB / Discover |
cardInfo.cardLevel | C | 卡级别 |
cardInfo.cardType | M | 卡类型,枚举值:
|
cardInfo.firstName | M | 持卡人名称 |
cardInfo.lastName | M | 持卡人姓氏 |
cardInfo.firstSixDigits | M | 卡号前6位 |
cardInfo.lastFourDigits | M | 卡号后4位 |
cardInfo.isoContryA2 | C | 国家二字码,符合iso3166标准 |
cardInfo.ipCountry | C | 用户交易国家 |
cardInfo.isoCountry | C | 发卡行国家 |
cardInfo.issuringBank | C | 发卡行 |
cardInfo.paymentBrand | M | 卡品牌:VISA / Mastercard / American Express/ JCB / Discover |
issuerInfo.issuerResultCode | O | 银行返回编码,详见卡组织应答码列表 |
issuerInfo.issuerResultMsg | O | 银行返回信息描述,详见卡组织应答码列表 |
# 验签
商户系统接收到通知以后,必须通过验签(验证通知中的 sign 参数)来确保支付通知是由PingPong服务端发送的。 如何构造签名请移步签名规约