3.3 支付结果通知
<h2>描述</h2>
<p>交易完成后,PayCloud平台会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。</p>
<p>对后台通知交互时,如果PayCloud平台收到商户的应答不是成功,PayCloud平台认为通知失败,会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但PayCloud不保证通知最终能成功。
(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)<strong>注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。</strong></p>
<p>推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。<strong>特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。</strong></p>
<h2>接口地址</h2>
<p>该链接是通过交易请求时提交的参数_<strong>notify_url</strong>_设置,如果链接无法访问,商户将无法接收到PayCloud异步通知。</p>
<p>以HTTP POST form表单 的方式请求_<strong>notify_url服务</strong>_</p>
<h2>请求参数</h2>
<h4>公共参数</h4>
<p>参见【<a href="https://www.showdoc.com.cn/1724151917532295/8175841214113582">请求报文 - 公共参数</a>】</p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th><strong>参数KEY</strong></th>
<th><strong>参数名称</strong></th>
<th><strong>类型</strong></th>
<th><strong>必要性</strong></th>
<th><strong>描述</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>merchant_no</td>
<td>商户号</td>
<td>TEXT(32)</td>
<td>M</td>
<td>商户号,在PayCloud平台入驻后分配的商户号</td>
</tr>
<tr>
<td>store_no</td>
<td>门店编号</td>
<td>TEXT(16)</td>
<td>O</td>
<td>PayCloud分配的门店编号</td>
</tr>
<tr>
<td>device_en</td>
<td>设备号</td>
<td>TEXT(16)</td>
<td>O</td>
<td>POS机设备号</td>
</tr>
<tr>
<td>trans_no</td>
<td>交易号</td>
<td>TEXT(32)</td>
<td>M</td>
<td>PayCloud平台交易号</td>
</tr>
<tr>
<td>orig_trans_no</td>
<td>原交易号</td>
<td>TEXT(32)</td>
<td>O</td>
<td>trans_type = 2,3,6,7,9时会返回原交易的交易号</td>
</tr>
<tr>
<td>out_order_no</td>
<td>商户订单号</td>
<td>TEXT(32)</td>
<td>M</td>
<td>商户系统内部订单号</td>
</tr>
<tr>
<td>trans_status</td>
<td>交易状态</td>
<td>TEXT</td>
<td>M</td>
<td>SUCCESS-交易成功</td>
</tr>
<tr>
<td>payment_method</td>
<td>支付方式</td>
<td>TEXT(16)</td>
<td>M</td>
<td>目前支持的支付方式有:ALIPAY 支付宝WECHATPAY 微信支付UNIONPAY_QRCODE 银联二维码UNIONPAY 银联卡</td>
</tr>
<tr>
<td>trans_type</td>
<td>交易类型</td>
<td>NUMBER</td>
<td>M</td>
<td>1:消费;2:消费撤销;3:退款;5:预授权;6:预授权撤销;7:预授权完成;9:预授权完成撤销;</td>
</tr>
<tr>
<td>pay_user_account_id</td>
<td>买家账号标识</td>
<td>TEXT(32)</td>
<td>M</td>
<td>支付宝返回支付用户的ID,例如:2088101117955611微信返回商户appid下用户唯一标识,例如:wx37150978513678银行卡交易返回加*脱敏的卡号信息,例如:6226****1982</td>
</tr>
<tr>
<td>trans_currency</td>
<td>标价币种</td>
<td>TEXT(32)</td>
<td>O</td>
<td>符合ISO 4217标准的三位字母代码,币种列表详见货币类型</td>
</tr>
<tr>
<td>trans_amount</td>
<td>交易总金额</td>
<td>AMOUNT</td>
<td>M</td>
<td>交易总金额</td>
</tr>
<tr>
<td>customer_paid_amount</td>
<td>顾客实付金额</td>
<td>AMOUNT</td>
<td>M</td>
<td>交易过程中从顾客资金账户中实际扣减的金额</td>
</tr>
<tr>
<td>discount_bmopc</td>
<td>支付通道商户优惠金额</td>
<td>AMOUNT</td>
<td>O</td>
<td>商户在支付通道的服务提供方(微信、支付宝等)的系统发布营销活动(优惠券、代金券、满减、单品优惠),用户支付时享受的金额减免</td>
</tr>
<tr>
<td>discount_bpc</td>
<td>支付通道优惠金额</td>
<td>AMOUNT</td>
<td>O</td>
<td>支付通道提供方(微信、支付宝等)给用户提供的优惠,在交易过程中直接减免,如:鼓励金、立减、红包等营销活动</td>
</tr>
<tr>
<td>trans_end_time</td>
<td>交易完成时间</td>
<td>DATE</td>
<td>M</td>
<td></td>
</tr>
<tr>
<td>description</td>
<td>交易备注</td>
<td>TEXT(127)</td>
<td>O</td>
<td>商家或顾客对交易的商品或服务的说明</td>
</tr>
<tr>
<td>attach</td>
<td>商户附加信息</td>
<td>TEXT(127)</td>
<td>O</td>
<td>附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据</td>
</tr>
<tr>
<td>card_attr</td>
<td>卡属性</td>
<td>Number</td>
<td>O</td>
<td>银联二维码及银行卡类交易时会返回此参数,取值如下:01:借记卡 02:贷记卡</td>
</tr>
<tr>
<td>pay_operation_method</td>
<td>支付操作方式</td>
<td>NUMBER</td>
<td>M</td>
<td>0:未知1:插卡2:挥卡3:刷卡4:扫码支付5:条码支付6:H5支付7:小程序支付8:APP支付9:PC网页支付11:无卡支付</td>
</tr>
<tr>
<td>term_ip</td>
<td>终端IP地址</td>
<td>TEXT(32)</td>
<td>O</td>
<td></td>
</tr>
<tr>
<td>longitude</td>
<td>终端所在地理位置经度</td>
<td>TEXT(32)</td>
<td>O</td>
<td></td>
</tr>
<tr>
<td>latitude</td>
<td>终端所在地理位置维度</td>
<td>TEXT(32)</td>
<td>O</td>
<td></td>
</tr>
</tbody>
</table>
<h2></h2>
<h2>响应参数</h2>
<p>商户处理后同步返回给PayCloud平台的参数:</p>
<table>
<thead>
<tr>
<th><strong>参数KEY</strong></th>
<th><strong>参数名称</strong></th>
<th><strong>类型</strong></th>
<th><strong>必要性</strong></th>
<th><strong>描述</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>返回状态码</td>
<td>TEXT(32)</td>
<td>M</td>
<td>正确处理通知后请响应状态吗:0 </td>
</tr>
<tr>
<td>msg</td>
<td>返回信息</td>
<td>TEXT(32)</td>
<td>M</td>
<td>正确处理通知后请响应:SUCCESS</td>
</tr>
</tbody>
</table>