JSAPI支付【总分店模式】
<h1>公众号支付/服务窗支付【总分店模式】</h1>
<p><strong>接口地址</strong></p>
<p><code>测试</code>
<code>http://xipay.xiangma365.com/api/openpay/v4/chain/jspay</code></p>
<p><code>正式</code>
<code>https://cpay.xiangma365.com/openpay/v4/chain/jspay</code></p>
<p><strong>请求方式</strong></p>
<p><code>POST</code></p>
<p><strong>请求头部</strong></p>
<p><code>Content-Type:application/json</code></p>
<p><strong>请求参数</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<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;">inst_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">机构号 ,通道分配</td>
<td style="text-align: left;">60000001</td>
</tr>
<tr>
<td style="text-align: left;">mch_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">总店商户号</td>
<td style="text-align: left;">Y52212200002</td>
</tr>
<tr>
<td style="text-align: left;">shop_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">分店商户号,传此参数时以此商户号发起实际交易,不传从各分店中筛选出实际交易分店商户</td>
<td style="text-align: left;">Y52212200002</td>
</tr>
<tr>
<td style="text-align: left;">pay_type</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">支付类型:300 支付宝,400 微信,600 云闪付</td>
<td style="text-align: left;">400</td>
</tr>
<tr>
<td style="text-align: left;">pay_trace_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">请求流水号(在商户系统内唯一)</td>
<td style="text-align: left;">werddtuoji0988</td>
</tr>
<tr>
<td style="text-align: left;">pay_time</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">支付请求时间,yyyyMMddHHmmss格式</td>
<td style="text-align: left;">20880907150901</td>
</tr>
<tr>
<td style="text-align: left;">total_amount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">支付金额,单位:分</td>
<td style="text-align: left;">1</td>
</tr>
<tr>
<td style="text-align: left;">open_id</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">用户标识:微信openid / 支付宝pid</td>
<td style="text-align: left;">ofs1j4zrOlRsjniXF0HOH32MdXH4</td>
</tr>
<tr>
<td style="text-align: left;">notify_url</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">回调地址(无须ecode)</td>
<td style="text-align: left;"><a href="http://open.sh.com">http://open.sh.com</a></td>
</tr>
<tr>
<td style="text-align: left;">attach</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">自定义信息,原样返回</td>
<td style="text-align: left;">1234</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">签名字符串</td>
<td style="text-align: left;">920ff5b412adb411c6648948f2212fb9</td>
</tr>
</tbody>
</table>
<p><strong>请求示例(微信)</strong></p>
<pre><code>{
&quot;inst_no&quot;: 60000001,
&quot;mch_no&quot;: &quot;Y52212190001&quot;,
&quot;pay_type&quot;: &quot;400&quot;,
&quot;pay_trace_no&quot;: &quot;998877665544332001&quot;,
&quot;pay_time&quot;: &quot;20230227231190&quot;,
&quot;total_amount&quot;: &quot;1&quot;,
&quot;sign&quot;: &quot;ca80a3969b049138cbd27970c8d4639d&quot;
}</code></pre>
<p><strong>请求示例(支付宝)</strong></p>
<pre><code>{
&quot;inst_no&quot;: 60000001,
&quot;mch_no&quot;: &quot;Y52212190001&quot;,
&quot;pay_type&quot;: &quot;300&quot;,
&quot;pay_trace_no&quot;: &quot;998877665544332002&quot;,
&quot;pay_time&quot;: &quot;20230227231190&quot;,
&quot;total_amount&quot;: &quot;1&quot;,
&quot;sign&quot;: &quot;9351e0c41b6630fc594d1e1b8374439b&quot;
}</code></pre>
<p><strong>响应参数</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<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;">return_code</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">响应码:SUCCESS成功,FAIL失败,响应码仅代表通信或参数</td>
<td style="text-align: left;">SUCCESS</td>
</tr>
<tr>
<td style="text-align: left;">result_code</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">业务结果:PAY_SUCCESS 支付成功 ,PAY_IN_PROCESS 支付中 ,PAY_FAIL 支付失败,只有在return_code为SUCCESS时才会返回。</td>
<td style="text-align: left;">PAY_SUCCESS</td>
</tr>
<tr>
<td style="text-align: left;">return_msg</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">返回信息提示,“支付成功”,“支付中”,“参数不合法” 等</td>
<td style="text-align: left;">支付成功</td>
</tr>
<tr>
<td style="text-align: left;">pay_type</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">支付类型:300支付宝,400微信,600云闪付</td>
<td style="text-align: left;">300</td>
</tr>
<tr>
<td style="text-align: left;">mch_name</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">商户名称</td>
<td style="text-align: left;">小猫生活</td>
</tr>
<tr>
<td style="text-align: left;">shop_name</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">门店名称</td>
<td style="text-align: left;">小猫生活</td>
</tr>
<tr>
<td style="text-align: left;">mch_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">商户号</td>
<td style="text-align: left;">851811130002</td>
</tr>
<tr>
<td style="text-align: left;">shop_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">门店号</td>
<td style="text-align: left;">86000033007</td>
</tr>
<tr>
<td style="text-align: left;">pay_trace_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">请求流水号(必须在商户系统内唯一)</td>
<td style="text-align: left;">51c7d68424e5492199cf7f4734a2b977</td>
</tr>
<tr>
<td style="text-align: left;">pay_time</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">请求交易时间,格式yyyyMMddHHmmss</td>
<td style="text-align: left;">20181116155621</td>
</tr>
<tr>
<td style="text-align: left;">total_amount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">支付金额,单位:分</td>
<td style="text-align: left;">100</td>
</tr>
<tr>
<td style="text-align: left;">trade_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">订单号</td>
<td style="text-align: left;">20000002814118090716435200001</td>
</tr>
<tr>
<td style="text-align: left;">appId</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">公众号appId</td>
<td style="text-align: left;">appIdXXX</td>
</tr>
<tr>
<td style="text-align: left;">timeStamp</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">公众号支付返回字段,时间戳,部分系统取到的值为毫秒级,需要转换成秒(10位数字)</td>
<td style="text-align: left;">1414561699</td>
</tr>
<tr>
<td style="text-align: left;">nonceStr</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">公众号支付返回字段,随机字符串</td>
<td style="text-align: left;">1234</td>
</tr>
<tr>
<td style="text-align: left;">packages</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">公众号支付返回字段,支付参数</td>
<td style="text-align: left;">prepay_id=123456789</td>
</tr>
<tr>
<td style="text-align: left;">signType</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">公众号支付返回字段,签名方式</td>
<td style="text-align: left;">MD5,RSA</td>
</tr>
<tr>
<td style="text-align: left;">paySign</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">公众号支付返回字段,签名</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">ali_trade_no</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">支付宝JSAPI支付返回字段用于调起支付宝JSAPI</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">attach</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">自定义信息,原样返回</td>
<td style="text-align: left;">1234</td>
</tr>
<tr>
<td style="text-align: left;">code_url</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">O</td>
<td style="text-align: left;">跳转到该地址即可发起支付,与原生参数不同时返回</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">M</td>
<td style="text-align: left;">签名</td>
<td style="text-align: left;">336437c53711dd466154c4162cbe1c52</td>
</tr>
</tbody>
</table>
<p><strong>响应示例(微信)</strong></p>
<pre><code>{
&quot;return_code&quot;: &quot;SUCCESS&quot;,
&quot;return_msg&quot;: &quot;公众号支付请求成功&quot;,
&quot;result_code&quot;: &quot;PAY_SUCCESS&quot;,
&quot;pay_type&quot;: &quot;400&quot;,
&quot;mch_name&quot;: &quot;升宝百货&quot;,
&quot;shop_name&quot;: &quot;&quot;,
&quot;mch_no&quot;: &quot;Y52212190001&quot;,
&quot;shop_no&quot;: &quot;&quot;,
&quot;pay_trace_no&quot;: &quot;998877665544332001&quot;,
&quot;pay_time&quot;: &quot;20230227231190&quot;,
&quot;total_amount&quot;: &quot;1&quot;,
&quot;trade_no&quot;: &quot;200001102F4323030419531110002&quot;,
&quot;appId&quot;: null,
&quot;timeStamp&quot;: null,
&quot;nonceStr&quot;: null,
&quot;packages&quot;: null,
&quot;signType&quot;: null,
&quot;paySign&quot;: null,
&quot;ali_trade_no&quot;: null,
&quot;attach&quot;: null,
&quot;code_url&quot;: &quot;https://pay.congmingpay.com/pay/buypay.do?shopId=5907536da7c0c3448df3eb8c3d57ee0c&amp;money=0.01&amp;orderId=200001102F4323030419531110002&amp;type=weixin&amp;device=2023001&amp;goodsMsg=&amp;sign=160E52B89B932D1919CBC12C98645763&amp;redirectUrl=http://xipay.xiangma365.com:8090/openpay/notify/cmfnotify&amp;returnUrl=http%3A%2F%2Fweb.cpo2o.com%2Fcnzz%2Findex.html%3Fid%3D26&amp;ver=2.1&amp;profitShareType=&amp;profitShareInfo=&amp;goodsTag=&amp;detail=&amp;program_id=&amp;pro_access_token=&quot;,
&quot;sign&quot;: &quot;336437c53711dd466154c4162cbe1c52&quot;
}</code></pre>
<p><strong>响应示例(支付宝)</strong></p>
<pre><code>{
&quot;return_code&quot;: &quot;SUCCESS&quot;,
&quot;return_msg&quot;: &quot;公众号支付请求成功&quot;,
&quot;result_code&quot;: &quot;PAY_SUCCESS&quot;,
&quot;pay_type&quot;: &quot;300&quot;,
&quot;mch_name&quot;: &quot;升宝百货&quot;,
&quot;shop_name&quot;: &quot;&quot;,
&quot;mch_no&quot;: &quot;Y52212190001&quot;,
&quot;shop_no&quot;: &quot;&quot;,
&quot;pay_trace_no&quot;: &quot;998877665544332002&quot;,
&quot;pay_time&quot;: &quot;20230227231190&quot;,
&quot;total_amount&quot;: &quot;1&quot;,
&quot;trade_no&quot;: &quot;200001102F3323030420500210001&quot;,
&quot;appId&quot;: null,
&quot;timeStamp&quot;: null,
&quot;nonceStr&quot;: null,
&quot;packages&quot;: null,
&quot;signType&quot;: null,
&quot;paySign&quot;: null,
&quot;ali_trade_no&quot;: null,
&quot;attach&quot;: null,
&quot;code_url&quot;: &quot;https://pay.congmingpay.com/pay/buypay.do?shopId=5907536da7c0c3448df3eb8c3d57ee0c&amp;money=0.01&amp;orderId=200001102F3323030420500210001&amp;type=alipay&amp;device=202301&amp;goodsMsg=&amp;sign=B451AD45A5ACC9E04F35832A4CBC316B&amp;redirectUrl=http://xipay.xiangma365.com:8090/openpay/notify/cmfnotify&amp;returnUrl=http%3A%2F%2Fweb.cpo2o.com%2Fcnzz%2Findex.html%3Fid%3D26&amp;ver=2.1&amp;profitShareType=&amp;profitShareInfo=&amp;goodsTag=&amp;detail=&amp;program_id=&amp;pro_access_token=&quot;,
&quot;sign&quot;: &quot;57c29b1f4c6d56ddfb751f87c2ce9a4b&quot;
}</code></pre>