服务端接入流程
# 服务端接入流程
# 使用说明
- 构造交易数据并签名必须在商户服务端完成,商户的secret绝对不能保存在商户客户端中,也不能从服务端下发。
- 同步返回的数据,只是一个简单的结果通知,商户确定该笔交易付款是否成功需要依赖服务端收到PingPongPay异步通知的结果进行判断。
- 商户系统接收到通知以后,必须通过验签(验证通知中的 sign 参数)来确保支付通知是由PingPong服务端发送的。
- 建议使用提供的 SDK 来完成签名和验签,目前有JAVA语言版本和PHP语言版本可供使用,其他语言参考文档异步通知验签自行完成。
# 交易业务系统交互流程

商户根据 pingpong checkout 提供的接口规则,组装请求报文,同时将请求数据通过程序生成签名字符串。 最后把签名后的请求报文, 通过 HTTP 请求传给 pingpong checkout。
pingpong checkout 收到请求报文后,将对报文进行验签和参数校验。
如果验签和参数校验未通过, pingpong checkout 会直接将验签、参数校验结果同步返回给商户。
如果验签和参数校验都通过, pingpong checkout 会对交易请求进行一系列业务处理。
同步响应数据: pingpong checkout 同步返回该笔交易的处理结果和响应数据,其中响应数据在同一 HTTP 连接的 response 报文的 body 体中以 JSON 格式返回。商户同步接收到 HTTP 响应后,获取返回的 JSON 报文;根据具体的报文格式解析出具体的响应数据,进行相关的业务处理逻辑。
6.1. 异步结果通知: pingpong checkout 在同步返回结果后,会继续进行异步逻辑处理,如收到银行渠道的异步支付结果通知等。 pingpong checkout 在服务端异步处理后,将根据商户请求报文中传入的 notifyUrl, 通过 HTTP POST ( Content-Type: application/x-www-form-urlencoded ) 方式通知商户最终处理结果。
6.2. 异步结果通知处理:商户在成功收到异步处理结果后,需要在响应体中返回HttpCode为200并且以字符串形式返回OK, 表示商户已经成功收到异步结果通知,否则 pingpong checkout 会在随后的一段时间内,以递增的时间间隔重发,最多重发 12 次,间隔为 2s/5s/5s/10s/30s/1m/10m/30m/1h/2h/1d/2d。
- 如果长时间未收到交易结果,商户可以主动向 pingpong checkout 发起交易查询,查询对应的交易结果。
# 查询业务系统交互流程

商户根据 pingpong checkout 提供的接口规则,组装请求报文,同时将请求数据通过程序生成签名字符 串。 最后把签名后的请求报文, 通过 HTTP 请求传给 pingpong checkout。
pingpong checkout 收到请求报文后,将对报文进行验签和参数校验。
如果验签和参数校验未通过, pingpong checkout 会直接将验签、参数校验结果同步返回给商户。
如果验签和参数校验都通过, pingpong checkout 会对交易请求进行一系列业务处理。
同步响应数据: pingpong checkout 同步返回该笔交易的处理结果和响应数据,其中响应数据在同一 HTTP 连接的 response 报文的 body 体中以 JSON 格式返回。商户同步接收到 HTTP 响应后, 获取返回的 JSON 报文;根据具体的报文格式解析出具体的响应数据,进行相关的业务处理逻辑。
# 通知业务系统交互流程

- 商户在成功收到异步处理结果后,响应 HttpCode 为 200 并且以字符串形式返回 OK,表示商户已经成功收到异步结果通知。
- 否则 pingpong checkout 会在随后的一段时间内,以递增的时 间间隔重发,最多重发 12 次。
- 间隔为 2s/5s/5s/10s/30s/1m/10m/30m/1h/2h/1d/2d。