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

商户正常上报交易参数无误,发起正常的交易请求与流程,并且上送了
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服务端发送的。 如何构造签名请移步签名规约