支付结果通知
<h1>支付结果通知接口文档</h1>
<h2>一、通知类型</h2>
<ol>
<li><strong>服务器异步通知(notify_url)</strong>:支付平台主动向商户预先设置的<code>notify_url</code>发起请求,推送支付结果。这种通知方式无需商户主动查询,适用于需要及时处理支付结果,如更新订单状态、发放商品或服务等业务场景。</li>
<li><strong>页面跳转通知(return_url)</strong>:在支付完成后,用户浏览器会被重定向到商户设置的<code>return_url</code>,并携带支付结果相关参数。主要用于向用户展示支付结果信息,提升用户体验。</li>
</ol>
<h2>二、请求方式</h2>
<p>GET 请求,支付平台将支付结果相关参数以查询字符串的形式附加在 URL 后面发送给商户。</p>
<h2>三、请求参数</h2>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>商户 ID</td>
<td>pid</td>
<td>Int</td>
<td>1001</td>
<td>商户在支付平台的唯一标识,用于识别商户身份</td>
</tr>
<tr>
<td>平台订单号</td>
<td>trade_no</td>
<td>String</td>
<td>20160806151343349</td>
<td>支付平台为该笔支付生成的唯一订单编号,用于标识该笔交易</td>
</tr>
<tr>
<td>商户订单号</td>
<td>out_trade_no</td>
<td>String</td>
<td>20160806151343351</td>
<td>商户系统内用于标识该笔交易的订单编号,与平台订单号一一对应</td>
</tr>
<tr>
<td>接口订单号</td>
<td>api_trade_no</td>
<td>String</td>
<td>40001249985198893</td>
<td>微信或支付宝返回的订单编号,方便在对应支付渠道内查询订单详情</td>
</tr>
<tr>
<td>支付方式</td>
<td>type</td>
<td>String</td>
<td>alipay</td>
<td>此次支付所使用的支付方式,取值参考支付方式列表</td>
</tr>
<tr>
<td>交易状态</td>
<td>trade_status</td>
<td>String</td>
<td>TRADE_SUCCESS</td>
<td>固定为<code>TRADE_SUCCESS</code>表示支付成功,商户需根据该值判断支付是否完成</td>
</tr>
<tr>
<td>订单创建时间</td>
<td>addtime</td>
<td>String</td>
<td>2024-07-01 16:47:32</td>
<td>订单在支付平台创建的时间</td>
</tr>
<tr>
<td>订单完成时间</td>
<td>endtime</td>
<td>String</td>
<td>2024-07-01 16:49:24</td>
<td>订单支付完成的时间,仅当支付完成时返回</td>
</tr>
<tr>
<td>商品名称</td>
<td>name</td>
<td>String</td>
<td>-</td>
<td>本次支付所购买的商品或服务名称</td>
</tr>
<tr>
<td>商品金额</td>
<td>money</td>
<td>String</td>
<td>1.00</td>
<td>本次支付的商品或服务的金额,单位为元</td>
</tr>
<tr>
<td>业务扩展参数</td>
<td>param</td>
<td>String</td>
<td>-</td>
<td>商户在发起支付请求时传入的业务扩展参数,原样返回</td>
</tr>
<tr>
<td>支付用户标识</td>
<td>buyer</td>
<td>String</td>
<td>-</td>
<td>支付用户在支付平台的标识,一般为<code>openid</code>,用于识别支付用户身份</td>
</tr>
<tr>
<td>当前时间戳</td>
<td>timestamp</td>
<td>String</td>
<td>1721206072</td>
<td>10 位整数,单位为秒,用于校验请求时效性和签名计算</td>
</tr>
<tr>
<td>签名字符串</td>
<td>sign</td>
<td>String</td>
<td>-</td>
<td>用于验证请求数据的完整性和真实性,参考签名规则生成</td>
</tr>
<tr>
<td>签名类型</td>
<td>sign_type</td>
<td>String</td>
<td>RSA</td>
<td>默认的签名算法类型,用于指示签名所使用的算法</td>
</tr>
</tbody>
</table>
<h2>四、返回内容说明</h2>
<p>商户在收到异步通知后,必须返回<code>success</code>字符串,以此告知支付平台服务器已成功接收到订单通知。若未返回<code>success</code>,支付平台可能会重试通知。</p>
<h2>五、其他说明</h2>
<ol>
<li><strong>签名校验</strong>:商户系统代码中必须对返回的签名<code>sign</code>进行严格校验,按照平台提供的签名规则,使用平台公钥验证签名的合法性,确保支付结果数据未被篡改。</li>
<li><strong>交易状态判断</strong>:除了校验签名,商户还需判断<code>trade_status</code>的值是否等于<code>TRADE_SUCCESS</code>,只有当该值为<code>TRADE_SUCCESS</code>时,才能确认支付成功并进行后续业务处理,如发货、开通服务等。</li>
<li><strong>字段扩展支持</strong>:支付平台可能会根据业务发展增加回调字段,商户在验证签名时必须确保能够支持这些可能增加的扩展字段,保证系统的兼容性和稳定性。</li>
</ol>