cpay


JSAPI支付

<h1>微信公众号支付/支付宝生活号支付</h1> <p><strong>适用范围</strong></p> <p>用户在微信/支付宝中打开商户的 H5 页面,商户在 H5 页面通过调用微信/支付宝支付模块完成支付。应用场景有:</p> <ul> <li>用户在微信公众或小程序/支付宝口碑或生活号内进入商户商品页面,选购完成支付。</li> <li>用户的好友在微信朋友圈、聊天窗口等分享商户页面连接,或用户在支付宝朋友之间分享商户页面连接,用户点击链接打开商户页面,完成支付。</li> <li>将商户页面转换成二维码,用户扫描二维码后在微信/支付宝浏览器中打开页面后完成支付。</li> </ul> <p><strong>流程图</strong></p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=00660394ba9a788472e56ebed5af2f54&amp;amp;file=file.png" alt="" /></p> <p><strong>流程说明</strong></p> <ol> <li>用户在微信/支付宝 APP 内选购商户商品后进行支付;</li> <li>商户系统需要调用微信/支付宝官方的应用接口,微信的需要获取微信用户的 openId,支付宝的需要获取买家的支付宝唯一用户号(buyerId)或买家的支付宝账号(buyerLogonId);</li> <li>微信官方返回微信用户的 openId,支付宝官方返回买家的支付宝唯一用户号(buyerId)或买家的支付宝账号(buyerLogonId);</li> <li>商户调用“微信公众号支付/支付宝生活号支付”接口向易票联支付系统下单;</li> <li>支付系统处理后返回相应的参数给到商户;</li> <li>商户返回相应的参数给浏览器端;</li> <li>微信/支付宝 APP 根据相应参数唤起微信或支付宝支付;</li> <li>用户在微信/支付宝 APP 内完成支付;</li> <li>如果支付成功,支付系统会通过“支付结果异步通知”接口通知商户,商户需要 接收处理; 10.商户如果未接收到支付结果,需要同时通过查询机制使用“支付结果查询”接口 查询支付结果; 11.根据商户的主动查询,支付系统会返回订单支付结果。</li> </ol> <p><strong>接口地址</strong></p> <p><code>测试</code> <code>http://xipay.xiangma365.com/api/openpay/v3/jspay</code></p> <p><code>正式</code> <code>https://cpay.xiangma365.com/openpay/v3/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;">86000033007</td> </tr> <tr> <td style="text-align: left;">terminal_no</td> <td style="text-align: left;">string</td> <td style="text-align: left;">O</td> <td style="text-align: left;">终端号或商务SN</td> <td style="text-align: left;">70020283</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;">appid</td> <td style="text-align: left;">string</td> <td style="text-align: left;">O</td> <td style="text-align: left;">公众号或小程序appid(不指定时取后台配置)</td> <td style="text-align: left;">wx9bcfaaa7b194c038</td> </tr> <tr> <td style="text-align: left;">open_id</td> <td style="text-align: left;">string</td> <td style="text-align: left;">M</td> <td style="text-align: left;">用户标识:微信openid/支付宝userid,<strong>部分通道无需openid</strong></td> <td style="text-align: left;">oqqMoxBMF8FgrF3K8GnxiRPIyhBI</td> </tr> <tr> <td style="text-align: left;">notify_url</td> <td style="text-align: left;">string</td> <td style="text-align: left;">C</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;">order_body</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;">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;">goods_detail</td> <td style="text-align: left;">string</td> <td style="text-align: left;">O</td> <td style="text-align: left;">详情内容,json格式字符串,详细见“goods_detail描述”</td> <td style="text-align: left;">goods_detail”:[{\”goods_id\”:\”800510101\”,\”goods_name\”:\”ceshi\”,\”goods_price\”:\”40\”,\”goods_quantity\”:\”2\”}]”</td> </tr> <tr> <td style="text-align: left;">share_type</td> <td style="text-align: left;">string</td> <td style="text-align: left;">O</td> <td style="text-align: left;">分账类型:0.不分账,1.同步分账,2.异步分账,不传默认0</td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;">share_effect_time</td> <td style="text-align: left;">string</td> <td style="text-align: left;">C</td> <td style="text-align: left;">异步分账有效时间(单位:天),share_type=”2”时必传,小于1取1,大于30取30,不传默认30</td> <td style="text-align: left;">15</td> </tr> <tr> <td style="text-align: left;">share_detail</td> <td style="text-align: left;">string</td> <td style="text-align: left;">C</td> <td style="text-align: left;">分账详情,share_type=”1”时有效,json格式字符串,详细见“share_detail描述”</td> <td style="text-align: left;">“{\”share_count\”:\”2\”,\”share_fee_mch\”:\”通道商户号1\”,\”share_array\”:[{\”share_mch\”:\”通道商户号2\”,\”share_amount\”:\”122\”},{\”share_mch\”:\”通道商户号3\”,\”share_amount\”:\”322\”}]}”</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>share_detail描述</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;">goods_id</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;">8005</td> </tr> <tr> <td style="text-align: left;">goods_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;">goods_quantity</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;">goods_price</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> </tbody> </table> <p><strong>share_detail描述</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;">share_count</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;">8005</td> </tr> <tr> <td style="text-align: left;">share_fee_mch</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;">53005</td> </tr> <tr> <td style="text-align: left;">share_array</td> <td style="text-align: left;">JSONArray,详细见“share_array描述”</td> <td style="text-align: left;">M</td> <td style="text-align: left;">分账数组,json数组</td> <td style="text-align: left;">1</td> </tr> </tbody> </table> <p><strong>share_array描述</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;">share_mch</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;">53005</td> </tr> <tr> <td style="text-align: left;">share_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> </tbody> </table> <p><strong>请求示例(微信)</strong></p> <pre><code>{     &amp;quot;inst_no&amp;quot;: 60000001,     &amp;quot;mch_no&amp;quot;: &amp;quot;Y52212190001&amp;quot;,     &amp;quot;pay_type&amp;quot;: &amp;quot;400&amp;quot;,     &amp;quot;pay_trace_no&amp;quot;: &amp;quot;998877665544332001&amp;quot;,     &amp;quot;pay_time&amp;quot;: &amp;quot;20230227231190&amp;quot;,     &amp;quot;total_amount&amp;quot;: &amp;quot;1&amp;quot;,     &amp;quot;sign&amp;quot;: &amp;quot;ca80a3969b049138cbd27970c8d4639d&amp;quot; }</code></pre> <p><strong>请求示例(支付宝)</strong></p> <pre><code>{     &amp;quot;inst_no&amp;quot;: 60000001,     &amp;quot;mch_no&amp;quot;: &amp;quot;Y52212190001&amp;quot;,     &amp;quot;pay_type&amp;quot;: &amp;quot;300&amp;quot;,     &amp;quot;pay_trace_no&amp;quot;: &amp;quot;998877665544332002&amp;quot;,     &amp;quot;pay_time&amp;quot;: &amp;quot;20230227231190&amp;quot;,     &amp;quot;total_amount&amp;quot;: &amp;quot;1&amp;quot;,     &amp;quot;sign&amp;quot;: &amp;quot;9351e0c41b6630fc594d1e1b8374439b&amp;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_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;">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_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;">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;">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;">string</td> <td style="text-align: left;">C</td> <td style="text-align: left;">微信公众号支付返回字段,公众号appId</td> <td style="text-align: left;">wx9bcfaaa7b194c038</td> </tr> <tr> <td style="text-align: left;">timeStamp</td> <td style="text-align: left;">string</td> <td style="text-align: left;">C</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;">string</td> <td style="text-align: left;">C</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;">string</td> <td style="text-align: left;"></td> <td style="text-align: left;">微信公众号支付返回字段,订单详情扩展字符串,统一下单接口返回的prepay_id参数值,提交格式:prepay_id=123</td> <td style="text-align: left;">prepay_id=123456789</td> </tr> <tr> <td style="text-align: left;">signType</td> <td style="text-align: left;">string</td> <td style="text-align: left;">C</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;">string</td> <td style="text-align: left;">C</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;">object</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;">C</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;">Y</td> <td style="text-align: left;">签名字符串,拼装所有传递参数,UTF-8编码,32位md5加密转换签名字符串</td> <td style="text-align: left;">336437c53711dd466154c4162cbe1c52</td> </tr> </tbody> </table> <p><strong>响应示例(微信)</strong></p> <pre><code>{     &amp;quot;return_code&amp;quot;: &amp;quot;SUCCESS&amp;quot;,     &amp;quot;return_msg&amp;quot;: &amp;quot;下单成功&amp;quot;,     &amp;quot;result_code&amp;quot;: &amp;quot;PAY_SUCCESS&amp;quot;,     &amp;quot;pay_type&amp;quot;: &amp;quot;400&amp;quot;,     &amp;quot;mch_name&amp;quot;: &amp;quot;升宝百货&amp;quot;,     &amp;quot;shop_name&amp;quot;: &amp;quot;&amp;quot;,     &amp;quot;mch_no&amp;quot;: &amp;quot;Y52212190001&amp;quot;,     &amp;quot;shop_no&amp;quot;: &amp;quot;&amp;quot;,     &amp;quot;pay_trace_no&amp;quot;: &amp;quot;998877665544332001&amp;quot;,     &amp;quot;pay_time&amp;quot;: &amp;quot;20230227231190&amp;quot;,     &amp;quot;total_amount&amp;quot;: &amp;quot;1&amp;quot;,     &amp;quot;trade_no&amp;quot;: &amp;quot;200001102F4323030419531110002&amp;quot;,     &amp;quot;appId&amp;quot;: null,     &amp;quot;timeStamp&amp;quot;: null,     &amp;quot;nonceStr&amp;quot;: null,     &amp;quot;packages&amp;quot;: null,     &amp;quot;signType&amp;quot;: null,     &amp;quot;paySign&amp;quot;: null,     &amp;quot;ali_trade_no&amp;quot;: null,     &amp;quot;attach&amp;quot;: null,     &amp;quot;code_url&amp;quot;: &amp;quot;https://pay.congmingpay.com/pay/buypay.do?shopId=5907536da7c0c3448df3eb8c3d57ee0c&amp;amp;money=0.01&amp;amp;orderId=200001102F4323030419531110002&amp;amp;type=weixin&amp;amp;device=2023001&amp;amp;goodsMsg=&amp;amp;sign=160E52B89B932D1919CBC12C98645763&amp;amp;redirectUrl=http://xipay.xiangma365.com:8090/openpay/notify/cmfnotify&amp;amp;returnUrl=http%3A%2F%2Fweb.cpo2o.com%2Fcnzz%2Findex.html%3Fid%3D26&amp;amp;ver=2.1&amp;amp;profitShareType=&amp;amp;profitShareInfo=&amp;amp;goodsTag=&amp;amp;detail=&amp;amp;program_id=&amp;amp;pro_access_token=&amp;quot;,     &amp;quot;sign&amp;quot;: &amp;quot;336437c53711dd466154c4162cbe1c52&amp;quot; }</code></pre> <p><strong>响应示例(支付宝)</strong></p> <pre><code>{     &amp;quot;return_code&amp;quot;: &amp;quot;SUCCESS&amp;quot;,     &amp;quot;return_msg&amp;quot;: &amp;quot;下单成功&amp;quot;,     &amp;quot;result_code&amp;quot;: &amp;quot;PAY_SUCCESS&amp;quot;,     &amp;quot;pay_type&amp;quot;: &amp;quot;300&amp;quot;,     &amp;quot;mch_name&amp;quot;: &amp;quot;升宝百货&amp;quot;,     &amp;quot;shop_name&amp;quot;: &amp;quot;&amp;quot;,     &amp;quot;mch_no&amp;quot;: &amp;quot;Y52212190001&amp;quot;,     &amp;quot;shop_no&amp;quot;: &amp;quot;&amp;quot;,     &amp;quot;pay_trace_no&amp;quot;: &amp;quot;998877665544332002&amp;quot;,     &amp;quot;pay_time&amp;quot;: &amp;quot;20230227231190&amp;quot;,     &amp;quot;total_amount&amp;quot;: &amp;quot;1&amp;quot;,     &amp;quot;trade_no&amp;quot;: &amp;quot;200001102F3323030420500210001&amp;quot;,     &amp;quot;appId&amp;quot;: null,     &amp;quot;timeStamp&amp;quot;: null,     &amp;quot;nonceStr&amp;quot;: null,     &amp;quot;packages&amp;quot;: null,     &amp;quot;signType&amp;quot;: null,     &amp;quot;paySign&amp;quot;: null,     &amp;quot;ali_trade_no&amp;quot;: null,     &amp;quot;attach&amp;quot;: null,     &amp;quot;code_url&amp;quot;: &amp;quot;https://pay.congmingpay.com/pay/buypay.do?shopId=5907536da7c0c3448df3eb8c3d57ee0c&amp;amp;money=0.01&amp;amp;orderId=200001102F3323030420500210001&amp;amp;type=alipay&amp;amp;device=202301&amp;amp;goodsMsg=&amp;amp;sign=B451AD45A5ACC9E04F35832A4CBC316B&amp;amp;redirectUrl=http://xipay.xiangma365.com:8090/openpay/notify/cmfnotify&amp;amp;returnUrl=http%3A%2F%2Fweb.cpo2o.com%2Fcnzz%2Findex.html%3Fid%3D26&amp;amp;ver=2.1&amp;amp;profitShareType=&amp;amp;profitShareInfo=&amp;amp;goodsTag=&amp;amp;detail=&amp;amp;program_id=&amp;amp;pro_access_token=&amp;quot;,     &amp;quot;sign&amp;quot;: &amp;quot;57c29b1f4c6d56ddfb751f87c2ce9a4b&amp;quot; }</code></pre>

页面列表

ITEM_HTML