--- url: 'https://acquirer-api-docs-v4-en.pingpongx.com/notes/zh/notify/index.md' description: >- 异步通知接口用于接收交易相关事件的回调信息。适用于需要实时了解交易状态变化的场景,如交易成功、退款等。开发者需配置可公网访问的`notificationUrl`地址,并确保该服务支持接收和解析HTTP POST请求中的JSON数据。关键特性包括自动重试机制以应对网络不稳定情况,以及明确的HTTP响应 --- ## 异步通知概述 - 首先,商户侧配置异步回调通知`notificationUrl`地址。 - 每当,交易相关事件发生时(如交易成功),PingPongCheckOut 通知服务将会创建一个JSON对象,其中包含事件相关的数据等信息。 - 然后,PingPongCheckOut 通知服务通过 HTTP POST 请求将JSON对象发送到开发者配置的回调通知`notificationUrl`中。 商户侧在收到回调通知后,可根据异步通知报文做下一步的业务处理。 其流程描述如下: ```mermaid %%{init: { 'theme': 'base', 'themeVariables': { 'primaryColor': '#E3F2FD', 'primaryTextColor': '#0D47A1', 'primaryBorderColor': '#1976D2', 'lineColor': '#1565C0', 'secondaryColor': '#BBDEFB', 'tertiaryColor': '#90CAF9', 'background': '#F8FBFF', 'mainBkg': '#E3F2FD', 'secondBkg': '#BBDEFB', 'tertiaryBkg': '#90CAF9', 'actorBkg': '#2196F3', 'actorBorder': '#1976D2', 'actorTextColor': '#FFFFFF', 'actorLineColor': '#1565C0', 'signalColor': '#0D47A1', 'signalTextColor': '#0D47A1', 'noteBkgColor': '#E1F5FE', 'noteTextColor': '#01579B', 'noteBorderColor': '#0288D1', 'loopTextColor': '#0D47A1', 'activationBkgColor': '#B3E5FC', 'activationBorderColor': '#0277BD' } }}%% sequenceDiagram participant Developer as 👨💻 开发者 participant Merchant as 🏪 商户业务系统 participant PP as 🔄 PingPongCheckOut participant Notify as 📡 PingPongCheckOut Notify Server Developer->>Merchant: 开发者配置 notificationUrl Merchant->>PP: request Note over PP: 触发事件(如交易成功) PP->>Notify: 触发并推送回调通知 Notify-->>Merchant: request Merchant->>Merchant: 开发者业务处理 Merchant->>Notify: 返回 HTTP 状态码 200~299 ``` ## 接收异步通知 ### 准备一个支持 HTTP POST 的web服务 PingPongCheckOut 通知服务将以 HTTP POST 方式推送 JSON 格式的数据,因此开发者所提供的 Web 服务需要能够接收并解析来自HTTP POST 请求的 JSON 数据并能够返回相应 HTTP 状态码。 ### 设置回调通知地址 开发者可以通过各接口入参中的 `notificationUrl` 参数配置回调通知Url地址。 > 异步通知受双方网络连接状态影响,请确保通知地址公网可访问 ### 接收并响应 对于商户交易通知响应,遵循以下约定: | 接收结果 | HTTP Code 约定 | 应答报文格式约定 | |------|--------------------------------------------------------------------------------------------------------|-------------------------------------------------| | 接收成功 | 200 <= `httpcode` < 300,比如:200、201、204 | 无需返回应答报文 | | 接收失败 |