聚合支付接口文档

聚合支付接口文档


JSAPI支付

<h2>微信JSAPI支付接口</h2> <p>&gt; /api/pay/wechat</p> <h3>主体请求参数</h3> <table> <thead> <tr> <th>参数名称</th> <th>类型</th> <th>必填</th> <th>中文名</th> </tr> </thead> <tbody> <tr> <td>sign</td> <td>String</td> <td>✅</td> <td>签名</td> </tr> <tr> <td>timestamp</td> <td>String</td> <td>✅</td> <td>签名时间戳(毫秒)</td> </tr> <tr> <td>merchantNo</td> <td>String</td> <td>✅</td> <td>商户编号</td> </tr> <tr> <td>merchantOrderNo</td> <td>String</td> <td>✅</td> <td>商户订单号</td> </tr> <tr> <td>payChannelId</td> <td>int</td> <td>✅</td> <td>支付方式 固定传:2</td> </tr> <tr> <td>channelCode</td> <td>String</td> <td>✅</td> <td>渠道</td> </tr> <tr> <td>amount</td> <td>int</td> <td>✅</td> <td>支付金额(分)</td> </tr> <tr> <td>wechatInfo</td> <td>String</td> <td>✅</td> <td>微信信息(JSON字符串)</td> </tr> <tr> <td>goodsDetail</td> <td>String</td> <td>✅</td> <td>商品详情(JSON字符串)</td> </tr> <tr> <td>supportFapiao</td> <td>String</td> <td>❌</td> <td>电子发票入口开放标识 true:是;false:否</td> </tr> <tr> <td>notifyUrl</td> <td>String</td> <td>❌</td> <td>回调地址</td> </tr> <tr> <td>attach</td> <td>String</td> <td>❌</td> <td>附加数据,支付成功原样返回</td> </tr> <tr> <td>description</td> <td>String</td> <td>❌</td> <td>订单商品描述</td> </tr> <tr> <td>clientIp</td> <td>String</td> <td>❌</td> <td>用户IP地址</td> </tr> <tr> <td>goodsTag</td> <td>String</td> <td>❌</td> <td>订单优惠标记,代金券或立减 优惠功能&lt;br/&gt;该参数传给微信,当前仅对微信交易生效</td> </tr> <tr> <td>sceneInfo</td> <td>String</td> <td>❌</td> <td>场景信息(JSON字符串)</td> </tr> <tr> <td>terminalInfo</td> <td>String</td> <td>❌</td> <td>交易终端信息(JSON字符串)</td> </tr> <tr> <td>gpsInfo</td> <td>String</td> <td>❌</td> <td>gps信息。&lt;br/&gt;校验GPS信息格式, 如:-128.12,23.1 &lt;br/&gt;1. xxx,xxx &lt;br/&gt;2. 经度xxx为[-180,180]之间的浮点数,维度xxx为[-90,90]之间的浮点数,最多保留小数点八位float(11,8)</td> </tr> <tr> <td>bsInfo</td> <td>String</td> <td>❌</td> <td>基站信息。&lt;br/&gt;校验基站信息格式,格式说明:&lt;br/&gt;-- 1. 格式为:xxx,xxx,xxx,xxx 如:460,1,12,23454&lt;br/&gt;-- 2. xxx均为整数,长度不超过11位 基站信息,从左至右依次对应以下几个字段: &lt;br/&gt;mcc: 移动国家号码,由3位数字组成,唯一地识别移动用户所属的国家。我国为460 &lt;br/&gt;mnc:移动网号,由两位数字组成,用于识别移动用户所归属的移动网 &lt;br/&gt;lac:位置区编码,为寻呼而设置的一个区域,覆盖一片地理区域,按寻呼量划分 &lt;br/&gt;ci :负责收发的天线所朝向的扇区编号</td> </tr> </tbody> </table> <h3>子节点请求参数</h3> <h4>wechatInfo 微信信息JSON</h4> <table> <thead> <tr> <th>参数名称</th> <th>类型</th> <th>必选</th> <th>中文名</th> </tr> </thead> <tbody> <tr> <td>appid</td> <td>String</td> <td>✅</td> <td>微信公众号APPID</td> </tr> <tr> <td>openId</td> <td>String</td> <td>✅</td> <td>微信用户openId</td> </tr> </tbody> </table> <h4>goodsDetail 商品详情JSON</h4> <table> <thead> <tr> <th>参数名称</th> <th>类型</th> <th>必选</th> <th>中文名</th> </tr> </thead> <tbody> <tr> <td>costPrice</td> <td>String</td> <td>❌</td> <td>订单原价。 &lt;br/&gt;1.商户侧一张小票订单可能被分多次支付,订 单原价用于记录整张小票的交易金额。 &lt;br/&gt;2.当订单原价与支付金额不相等,则不享受优惠。 &lt;br/&gt;3.该字段主要用于防止同一张小票分多次支 付,以享受多次优惠的情况,正常支付订单不 必上传此参数。</td> </tr> <tr> <td>receiptId</td> <td>String</td> <td>❌</td> <td>商品小票 ID</td> </tr> <tr> <td>details</td> <td>json</td> <td>✅</td> <td>商品ID</td> </tr> <tr> <td>» goodsId</td> <td>String</td> <td>✅</td> <td>商品ID</td> </tr> <tr> <td>» wxGoodsId</td> <td>String</td> <td>❌</td> <td>微信侧商品编码 &lt;br/&gt;微信支付定义的统一商品编号(没有可不传)</td> </tr> <tr> <td>» goodsName</td> <td>String</td> <td>✅</td> <td>商品参数名称</td> </tr> <tr> <td>» quantity</td> <td>int</td> <td>✅</td> <td>商品数量</td> </tr> <tr> <td>» price</td> <td>int</td> <td>✅</td> <td>商品价格(分) &lt;br/&gt;如果商户有优惠,需传输商户优惠后的单价&lt;br/&gt;(例如:用户对一笔 100 元的订单使用了商场发的优惠券 100-50,则活动商品的单价应为原单价-50)</td> </tr> </tbody> </table> <h4>sceneInfo 场景信息JSON</h4> <table> <thead> <tr> <th>参数名称</th> <th>类型</th> <th>必选</th> <th>中文名</th> </tr> </thead> <tbody> <tr> <td>id</td> <td>String</td> <td>❌</td> <td>门店 id</td> </tr> <tr> <td>name</td> <td>String</td> <td>❌</td> <td>门店名称</td> </tr> <tr> <td>areaCode</td> <td>String</td> <td>❌</td> <td>门店所在地行政区划码</td> </tr> <tr> <td>address</td> <td>String</td> <td>❌</td> <td>门店详细地址</td> </tr> </tbody> </table> <h4>terminalInfo 交易终端信息JSON</h4> <table> <thead> <tr> <th>参数名称</th> <th>类型</th> <th>必选</th> <th>中文名</th> </tr> </thead> <tbody> <tr> <td>longitude</td> <td>String</td> <td>❌</td> <td>受理终端设备实时经度信息。&lt;br/&gt;经度为[-180,180]之前的浮点数,最多保留小数点8位&lt;br/&gt;-表示西经,+表示东经(不带正号时也表示东经)</td> </tr> <tr> <td>latitude</td> <td>String</td> <td>❌</td> <td>受理终端设备实时纬度信息。&lt;br/&gt;纬度为[-90,90]之前的浮点数,最多保留小数点8位&lt;br/&gt;-表示南纬,+表示北纬(不带正号时也表示北纬)</td> </tr> <tr> <td>networkLicense</td> <td>String</td> <td>❌</td> <td>终端入网认证编号。&lt;br/&gt;银行卡受理终端产品应用认证编 号。该编号由“中国银联标识产品企业资质认证办公室”为通过入网认证的终端进行分配。银联直连终端必填。&lt;br/&gt; 格式:5 位字符,例如 P3100</td> </tr> <tr> <td>deviceType</td> <td>String</td> <td>✅</td> <td>终端设备类型,受理方可参考终端。注册时的设备类型填写,取值如下:&lt;br/&gt;01:自动柜员机(含 ATM 和 CDM)和多媒体自助终端&lt;br/&gt;02:传统 POS&lt;br/&gt;03:mPOS&lt;br/&gt;04:智能 POS&lt;br/&gt;05:II 型固定电话&lt;br/&gt;06:云闪付终端;&lt;br/&gt;07:保留使用;&lt;br/&gt;08:手机 POS;&lt;br/&gt;09:刷脸付终端;&lt;br/&gt;10:条码支付受理终端;&lt;br/&gt;11:条码支付辅助受理终端;&lt;br/&gt;12:行业终端(公交、地铁用于指定行业的终端)&lt;br/&gt;13:MIS 终端;</td> </tr> <tr> <td>deviceId</td> <td>String</td> <td>✅</td> <td>终端设备号,收单机构为商户终端分配的唯一编号</td> </tr> <tr> <td>serialNum</td> <td>String</td> <td>⭕️</td> <td>50 终端设备的硬件序列号,出现要求: 终端类型&lt;br/&gt;(device_type)填写为 02、03、04、05、06、08、09 或 10 时,必须填写终端序列号。</td> </tr> <tr> <td>encryptRandNum</td> <td>String</td> <td>❌</td> <td>加密随机因子。&lt;br/&gt;仅在被扫支付类交易报文中出现:若付款码为 19 位数字,则取后6 位;若付款码为 EMV 二维码,则取其 tag 57 的卡号/token 号的后 6 位</td> </tr> <tr> <td>secretText</td> <td>String</td> <td>❌</td> <td>16 密文数据。&lt;br/&gt;仅在被扫支付类交易报文中出现: 64bit 的密文数据,对终端硬件序列号和加密随机因子加密后的结果。 本子域取值为:64bit 密文数据进行base64 编码后的结果。</td> </tr> <tr> <td>appVersion</td> <td>String</td> <td>❌</td> <td>应用程序版本号。终端应用程序的版本号。应用程序变更应保证版本号不重复。当长度不足时,右补空格。</td> </tr> <tr> <td>deviceIp</td> <td>String</td> <td>⭕️</td> <td>商户端终端设备 IP 地址。&lt;br/&gt;注:如经、 维度信息未上送,该字段必送。</td> </tr> </tbody> </table> <p>&gt; 请求参数示例(参数需要加密,以下是加密前的示例)</p> <pre><code class="language-json">{ &amp;quot;sign&amp;quot;: &amp;quot;291C70CA1DC3823C79ABA4DAD95C5D98&amp;quot;, &amp;quot;timestamp&amp;quot;: &amp;quot;1735660800000&amp;quot;, &amp;quot;merchantNo&amp;quot;: 17170000000000000000, &amp;quot;merchantOrderNo&amp;quot;: &amp;quot;NO1234567890&amp;quot;, &amp;quot;payChannelId&amp;quot;: 2, &amp;quot;channelCode&amp;quot;: &amp;quot;LeShua&amp;quot;, &amp;quot;amount&amp;quot;: 1, &amp;quot;goodsDetail&amp;quot;: &amp;quot;{\&amp;quot;costPrice\&amp;quot;:1,\&amp;quot;receiptId\&amp;quot;:\&amp;quot;NO123\&amp;quot;,\&amp;quot;details\&amp;quot;:[{\&amp;quot;goodsId\&amp;quot;:\&amp;quot;1\&amp;quot;,\&amp;quot;wxGoodsId\&amp;quot;:\&amp;quot;2\&amp;quot;,\&amp;quot;goodsName\&amp;quot;:\&amp;quot;测试商品\&amp;quot;,\&amp;quot;quantity\&amp;quot;:1,\&amp;quot;price\&amp;quot;:1}]}&amp;quot;, &amp;quot;wechatInfo&amp;quot;: &amp;quot;{\&amp;quot;openId\&amp;quot;:\&amp;quot;openId\&amp;quot;,\&amp;quot;appid\&amp;quot;:\&amp;quot;appid\&amp;quot;}&amp;quot;, &amp;quot;notifyUrl&amp;quot;: &amp;quot;https://abc/abc&amp;quot;, &amp;quot;clientIp&amp;quot;: &amp;quot;127.0.0.1&amp;quot;, &amp;quot;attach&amp;quot;: &amp;quot;附加信息&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;商品A&amp;quot;, &amp;quot;supportFapiao&amp;quot;: &amp;quot;false&amp;quot;, &amp;quot;goodsTag&amp;quot;: &amp;quot;WXG3&amp;quot;, &amp;quot;gpsInfo&amp;quot;: &amp;quot;128.12,23.1&amp;quot;, &amp;quot;bsInfo&amp;quot;: &amp;quot;460&amp;quot;, &amp;quot;sceneInfo&amp;quot;: &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;123\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;门店\&amp;quot;,\&amp;quot;areaCode\&amp;quot;:\&amp;quot;101010\&amp;quot;,\&amp;quot;address\&amp;quot;:\&amp;quot;详细地址\&amp;quot;}&amp;quot;, &amp;quot;terminalInfo&amp;quot;: &amp;quot;{\&amp;quot;longitude\&amp;quot;:\&amp;quot;177.22\&amp;quot;,\&amp;quot;latitude\&amp;quot;:\&amp;quot;-22.99\&amp;quot;,\&amp;quot;networkLicense\&amp;quot;:\&amp;quot;P3100\&amp;quot;,\&amp;quot;deviceType\&amp;quot;:\&amp;quot;02\&amp;quot;,\&amp;quot;deviceId\&amp;quot;:\&amp;quot;POS01\&amp;quot;,\&amp;quot;serialNum\&amp;quot;:\&amp;quot;123321\&amp;quot;,\&amp;quot;encryptRandNum\&amp;quot;:\&amp;quot;111111\&amp;quot;,\&amp;quot;secretText\&amp;quot;:\&amp;quot;2222222\&amp;quot;,\&amp;quot;appVersion\&amp;quot;:\&amp;quot;333\&amp;quot;,\&amp;quot;deviceIp\&amp;quot;:\&amp;quot;127.0.0.1\&amp;quot;}&amp;quot; }</code></pre> <h3>返回数据结构</h3> <table> <thead> <tr> <th>参数名称</th> <th>类型</th> <th>必填</th> <th>是否加密</th> <th>中文名</th> </tr> </thead> <tbody> <tr> <td>success</td> <td>boolean</td> <td>是</td> <td>❌</td> <td>响应状态</td> </tr> <tr> <td>code</td> <td>integer</td> <td>是</td> <td>❌</td> <td>响应编码</td> </tr> <tr> <td>msg</td> <td>string</td> <td>是</td> <td>❌</td> <td>响应信息</td> </tr> <tr> <td>data</td> <td>object</td> <td>是</td> <td>❌</td> <td>响应数据</td> </tr> <tr> <td>» sign</td> <td>string</td> <td>是</td> <td>❌</td> <td>签名</td> </tr> <tr> <td>» timestamp</td> <td>string</td> <td>是</td> <td>❌</td> <td>签名时间戳(毫秒)</td> </tr> <tr> <td>» merchantNo</td> <td>string</td> <td>是</td> <td>❌</td> <td>商户编号</td> </tr> <tr> <td>» orderNo</td> <td>string</td> <td>是</td> <td>✅</td> <td>聚合平台订单号</td> </tr> <tr> <td>» merchantOrderNo</td> <td>string</td> <td>是</td> <td>✅</td> <td>商户订单号</td> </tr> <tr> <td>» payInfo</td> <td>string</td> <td>是</td> <td>✅</td> <td>支付信息</td> </tr> <tr> <td>» placeTime</td> <td>string</td> <td>是</td> <td>✅</td> <td>下单时间</td> </tr> <tr> <td>» payState</td> <td>string</td> <td>是</td> <td>✅</td> <td>订单支付状态 &lt;br/&gt;0:未支付;&lt;br/&gt;1:已支付;&lt;br/&gt;2:支付失败;&lt;br/&gt;3:支付关闭;&lt;br/&gt;4:支付超时;&lt;br/&gt;5:退款中;&lt;br/&gt;6:已退款</td> </tr> <tr> <td>» attach</td> <td>string</td> <td>是</td> <td>✅</td> <td>附加数据</td> </tr> <tr> <td>» clientIp</td> <td>string</td> <td>是</td> <td>✅</td> <td>用户IP</td> </tr> </tbody> </table> <p>&gt; 返回示例(data参数需要解密,以下是实际响应数据示例)</p> <p>状态码 <strong>200</strong></p> <pre><code class="language-json">{ &amp;quot;success&amp;quot;: true, &amp;quot;code&amp;quot;: 200, &amp;quot;msg&amp;quot;: &amp;quot;操作成功&amp;quot;, &amp;quot;data&amp;quot;: { &amp;quot;sign&amp;quot;: &amp;quot;291C70CA1DC3823C79ABA4DAD95C5D98&amp;quot;, &amp;quot;timestamp&amp;quot;: 1743582863829, &amp;quot;merchantNo&amp;quot;: &amp;quot;17170000000000000000&amp;quot;, &amp;quot;orderNo&amp;quot;: &amp;quot;t3q96ediYXvvWbi1eqHJ5YBthAoEyWqIzkOqAWiai/E=&amp;quot;, &amp;quot;merchantOrderNo&amp;quot;: &amp;quot;WLXzddn2ATFBPSf9kI4edk9VltyAJ8/TTiSb7V1TT80=&amp;quot;, &amp;quot;payInfo&amp;quot;: &amp;quot;hQtMf0FCe37**************************&amp;quot;, &amp;quot;placeTime&amp;quot;: &amp;quot;XDzklufxmMBnd7G/uISZ3w==&amp;quot;, &amp;quot;payState&amp;quot;: &amp;quot;hQtMf0FCe37ZPOHU4HL4xA==&amp;quot;, &amp;quot;attach&amp;quot;: &amp;quot;Br/deow2oXKRDZ2B7fIE3w==&amp;quot;, &amp;quot;clientIp&amp;quot;: &amp;quot;zi2j3OnP+gv5bTIh1k6QXA==&amp;quot; } }</code></pre>

页面列表

ITEM_HTML