三方回调通知
<h1>7.第三方回调接口</h1>
<h2>7.1 回调事件</h2>
<ul>
<li>目前已定义的回调事件见下表</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">事件名称</th>
<th style="text-align: left;">事件编码</th>
<th style="text-align: left;">事件说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">发票申请</td>
<td style="text-align: left;">INVOICE_CREATE</td>
<td style="text-align: left;">发票登记后</td>
</tr>
<tr>
<td style="text-align: left;">企业审核</td>
<td style="text-align: left;">COMPANY_AUDIT</td>
<td style="text-align: left;">企业审核确认后</td>
</tr>
<tr>
<td style="text-align: left;">个人用户审核</td>
<td style="text-align: left;">USER_AUDIT</td>
<td style="text-align: left;">个人用户审核完成后回调</td>
</tr>
<tr>
<td style="text-align: left;">网货充值</td>
<td style="text-align: left;">FREIGHT_RECHAR</td>
<td style="text-align: left;">GE 银行通知资金服务后</td>
</tr>
<tr>
<td style="text-align: left;">合同签署</td>
<td style="text-align: left;">CONTRACT_SIGN</td>
<td style="text-align: left;">合同签署完成后</td>
</tr>
<tr>
<td style="text-align: left;">运输合同签署</td>
<td style="text-align: left;">WAYBILL_CONTRACT</td>
<td style="text-align: left;">运输合同签署完成后回调</td>
</tr>
<tr>
<td style="text-align: left;">代收合同签署</td>
<td style="text-align: left;">COLLECTION_CONTRACT_SIGN</td>
<td style="text-align: left;">代收合同签署完成后回调</td>
</tr>
<tr>
<td style="text-align: left;">开户</td>
<td style="text-align: left;">OPEN_ACCOUNT</td>
<td style="text-align: left;">开户进度完成后</td>
</tr>
<tr>
<td style="text-align: left;">运单创建</td>
<td style="text-align: left;">CREATE_WAYBILL</td>
<td style="text-align: left;">创建运单完成后</td>
</tr>
<tr>
<td style="text-align: left;">运单接单</td>
<td style="text-align: left;">ACCEPT_WAYBILL</td>
<td style="text-align: left;">运单被司机接单后</td>
</tr>
<tr>
<td style="text-align: left;">运力审核</td>
<td style="text-align: left;">CAR_DRIVER</td>
<td style="text-align: left;">运力审核后</td>
</tr>
<tr>
<td style="text-align: left;">创建订单</td>
<td style="text-align: left;">CREATE_ORDER</td>
<td style="text-align: left;">创建订单完成后</td>
</tr>
<tr>
<td style="text-align: left;">运单编辑</td>
<td style="text-align: left;">UPDATE_WAYBILL</td>
<td style="text-align: left;">运单编辑后</td>
</tr>
<tr>
<td style="text-align: left;">起运</td>
<td style="text-align: left;">PICK_GOODS</td>
<td style="text-align: left;">接口起运后</td>
</tr>
<tr>
<td style="text-align: left;">运抵</td>
<td style="text-align: left;">ARRIVE</td>
<td style="text-align: left;">接口运抵后</td>
</tr>
<tr>
<td style="text-align: left;">司机起运</td>
<td style="text-align: left;">DRIVER_PICK_GOODS</td>
<td style="text-align: left;">司机起运</td>
</tr>
<tr>
<td style="text-align: left;">司机运抵</td>
<td style="text-align: left;">DRIVER_ARRIVE</td>
<td style="text-align: left;">司机运抵</td>
</tr>
<tr>
<td style="text-align: left;">运单接单</td>
<td style="text-align: left;">ACCEPT_WAYBILL</td>
<td style="text-align: left;">运单接单</td>
</tr>
<tr>
<td style="text-align: left;">运单支付</td>
<td style="text-align: left;">PAY_WAYBILL</td>
<td style="text-align: left;">运单支付后</td>
</tr>
<tr>
<td style="text-align: left;">佣金提现</td>
<td style="text-align: left;">COMMISSION</td>
<td style="text-align: left;">佣金提现后</td>
</tr>
</tbody>
</table>
<ul>
<li>当业务进行到上面的事件节点时,会触发回调第三方自定义的接口地址。目前所有开放平台用户目前默 认订阅所有回调事件。暂时不支持自定义订阅回调事件。</li>
</ul>
<pre><code>注意、注意、注意
1.需要提供 回调通知地址 例如:https://baidu.com
2.需要 要求 运之盟方技术,用 user-code 和 开放平台用户(source_id) 做关系绑定</code></pre>
<h2>7.2 回调方式</h2>
<ul>
<li>请提供一个用于接收 POST 请求的接口 URL </li>
<li>在事件触发时,我们将调用该 URL,请求头中包含以下四个参数:</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">Header</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">X-Timestamp</td>
<td style="text-align: left;"> 当前时间戳, 用于生成签名和防止重放攻击</td>
</tr>
<tr>
<td style="text-align: left;">X-Nonce</td>
<td style="text-align: left;">18位long类型的随机数, 用于生成签名和防止重放攻击。</td>
</tr>
<tr>
<td style="text-align: left;">X-Signature</td>
<td style="text-align: left;">签名</td>
</tr>
<tr>
<td style="text-align: left;">X-EventCode</td>
<td style="text-align: left;">1.1 中定义的事件编码</td>
</tr>
</tbody>
</table>
<p><code>请求体中包含《业务回调接口文档》中定义的回调返回值,其中涉密字段将根据4.4中定义的方式 进行加密。</code></p>
<table>
<thead>
<tr>
<th style="text-align: left;">秘钥</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">sign_secret_key</td>
<td style="text-align: left;"> 客户端 (接口对接方) 私钥</td>
</tr>
<tr>
<td style="text-align: left;">sign_public_key</td>
<td style="text-align: left;">客户端 (接口对接方) 公钥</td>
</tr>
<tr>
<td style="text-align: left;">ivs_public_key</td>
<td style="text-align: left;">服务端 (运之盟) 公钥</td>
</tr>
<tr>
<td style="text-align: left;">ivs_private_key</td>
<td style="text-align: left;">服务端 (运之盟) 私钥</td>
</tr>
</tbody>
</table>
<h3>a.服务端 使用 sign_public_key 进行数据加密</h3>
<h3>b.服务端 使用 ivs_private_key 进行 签名</h3>
<p><code>收到请求后,请使用相应的密钥进行解密(sign_secret_key)和验签(ivs_public_key)。</code></p>
<p><code>当第三方返回结果异常时,我们将尝试最多调用 3 次。如果 3 次都不成功,则不再请求。</code></p>
<p><code>您也可以 手动调用回调补偿接口(详见具体业务接口文档)来检查事件是否已触发。</code></p>