公众号支付API
<h5>接口使用描述</h5>
<pre><code>本接口主要针对商户“一码多扫”交易场景。合作方为商户提供一固定或可变二维码,买家通过支付宝或微信客户端进行主动扫码,扫码后跳转商户结算H5页面,填写订单信息后调用本接口完成下单流程。
重要提示:本接口仅完成订单创建,客户支付动作须由商户端H5页面根据支付宝及微信支付标准的JS支付API完成。</code></pre>
<h5>接口地址</h5>
<pre><code> 接口地址:http(s)://api.liantuofu.com/open/precreate</code></pre>
<p><br/></p>
<h4>请求参数<img src='<a href="https://www.showdoc.cc/server/api/common/visitfile/sign/bfc24f8d7eb93fae8e66d4ab2b4bc461?showdoc=.jpg">https://www.showdoc.cc/server/api/common/visitfile/sign/bfc24f8d7eb93fae8e66d4ab2b4bc461?showdoc=.jpg</a>' align='right' style=' width:300px;height:100 px'/></h4>
<table>
<thead>
<tr>
<th><strong>NO</strong></th>
<th><strong>字段</strong></th>
<th><strong>名称</strong></th>
<th><strong>长度</strong></th>
<th><strong>必填</strong></th>
<th><strong>示例</strong></th>
<th><strong>说明</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>appId</td>
<td>合作方标识</td>
<td>string</td>
<td>Y</td>
<td>EW_N2949193174</td>
<td>合作商户编码,用于以后所有接口发起请求时验签使用</td>
</tr>
<tr>
<td>2</td>
<td>sign</td>
<td>签名。具体参见“<a href="https://www.showdoc.cc/web/#/liantuofu?page_id=673453270295568">签名规则</a>”</td>
<td>string</td>
<td>Y</td>
<td>1b70687c8a4c72f50c749baf95a482c0</td>
<td>MD5加密验签值。具体参见“<a href="https://www.showdoc.cc/web/#/liantuofu?page_id=673453270295568">签名规则</a>”</td>
</tr>
<tr>
<td>3</td>
<td>random</td>
<td>随机数</td>
<td>string</td>
<td>Y</td>
<td>123</td>
<td>用来增加加密验签的复杂度,长度不限制,只限制传递数字,不支持中文,字母,特殊符号。</td>
</tr>
<tr>
<td>4</td>
<td>merchantCode</td>
<td>门店编号</td>
<td>string</td>
<td>Y</td>
<td>EW_N9479011740</td>
<td>门店编号,用于后续接口请求参数的使用</td>
</tr>
<tr>
<td>5</td>
<td>outTradeNo</td>
<td>商户订单号</td>
<td>string</td>
<td>Y</td>
<td>CS100082018050166666</td>
<td>由商户生成的该笔交易的全局唯一ID,商户需确保其唯一性,重新发起一笔支付要使用新订单号,避免重复支付。后续可通过该ID查询对应订单信息。 建议值:公司简称+门店编号+时间戳+序列 支持8-64位数字、英文字母、“-”及“_”,其他字符不支持</td>
</tr>
<tr>
<td>6</td>
<td>totalAmount</td>
<td>订单总金额</td>
<td>double</td>
<td>Y</td>
<td>88.88</td>
<td>单位为元,精确到小数点后两位,取值范围[0.01至100000000]</td>
</tr>
<tr>
<td>7</td>
<td>channel</td>
<td>支付渠道</td>
<td>string</td>
<td>Y</td>
<td>WXPAY</td>
<td>支付渠道类型。 指定该笔支付将使用的第三方支付渠道: WXPAY:微信 ALIPAY:支付宝 MPAY:会员 UNIONPAY:云闪付</td>
</tr>
<tr>
<td>8</td>
<td>tradeType</td>
<td>支付交易类型</td>
<td>string</td>
<td>Y</td>
<td>JSAPI</td>
<td>支付交易类型。 指定该笔支付将使用的第三方支付渠道交易类型: JSAPI:网页支付</td>
</tr>
<tr>
<td>9</td>
<td>notifyUrl</td>
<td>通知地址</td>
<td>string</td>
<td>N</td>
<td><a href="http://www.test.com/test/test.t">http://www.test.com/test/test.t</a></td>
<td>异步接收交易结果通知的商户服务地址 0-256位任意字符 此值目前空置即可,商户可通过“<a href="https://www.showdoc.cc/web/#/xiaojinglingapi?page_id=658025876912528">订单查询</a>”接口获取交易结果 交易完成后,联拓富平台将以后台异步通知的方式,将交易结果发送到商户传递的此服务地址</td>
</tr>
<tr>
<td>10</td>
<td>openId</td>
<td>消费者用户标识</td>
<td>string</td>
<td>Y</td>
<td>2088412828586837</td>
<td>1.支付宝支付时,要求上送用户在支付宝唯一用户号user_id,[获取流程](<a href="https://docs.open.alipay.com/220/105337">https://docs.open.alipay.com/220/105337</a> "获取流程") 2.微信支付时,要求上送用户在商户subAppid下唯一标识openid,[获取流程](<a href="https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432">https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432</a> "获取流程")</td>
</tr>
<tr>
<td>11</td>
<td>subAppId</td>
<td>子商户公众账号ID</td>
<td>string(32)</td>
<td>N</td>
<td>wxd678efh567hg6787</td>
<td>子商户公众账号ID 仅微信交易有效</td>
</tr>
<tr>
<td>12</td>
<td>unDiscountAmount</td>
<td>不参与优惠金额(元)</td>
<td>double</td>
<td>N</td>
<td>1.22</td>
<td></td>
</tr>
<tr>
<td>13</td>
<td>goodsDetail</td>
<td>商品信息</td>
<td>json</td>
<td>N</td>
<td>[ { "goodsId": "1", "goodsName": "可乐", "price": 3, "quantity": 1 } ]</td>
<td>传递商品信息时可以传递,详细参照下面的goodsDetail列表</td>
</tr>
<tr>
<td>14</td>
<td>operatorId</td>
<td>操作员id</td>
<td>string</td>
<td>N</td>
<td>1234409009</td>
<td>收银员账号登陆时,登陆返回信息中的操作员ID(收银员ID)</td>
</tr>
<tr>
<td>15</td>
<td>orderRemark</td>
<td>订单备注</td>
<td>string</td>
<td>N</td>
<td>订单备注</td>
<td>在联拓富后台展示到订单列表里</td>
</tr>
<tr>
<td>16</td>
<td>subject</td>
<td>支付凭证商品描述信息,不填写默认为交易订单编号</td>
<td>string</td>
<td>N</td>
<td>2323232323232323</td>
<td>支付凭证商品描述信息,不填写默认为交易订单编号</td>
</tr>
<tr>
<td>17</td>
<td>expireMinutes</td>
<td>未支付订单关闭时间(分钟),最少5分钟,最长30分钟</td>
<td>int</td>
<td>N</td>
<td>5</td>
<td>未支付订单关闭时间(分钟),最少5分钟,最长30分钟</td>
</tr>
<tr>
<td>18</td>
<td>hbFqNum</td>
<td>花呗分期(使用花呗分期要进行的分期数)(支付宝交易使用)</td>
<td>int</td>
<td>N</td>
<td>5</td>
<td>花呗分期(使用花呗分期要进行的分期数)花呗交易分期数,可选值:3:3期 6:6期 12:12期 每期间隔为一个月。例如,选择3期,所垫付的资金及利息按3个月等额本息还款,每月还款一笔。</td>
</tr>
<tr>
<td>19</td>
<td>hbFqSellerPercent</td>
<td>手续费比例(支付宝交易使用)</td>
<td>int</td>
<td>N</td>
<td>5</td>
<td>使用花呗分期需要买家承担的手续费比例的百分值,传入100代表100%</td>
</tr>
<tr>
<td>20</td>
<td>sysServiceProviderId</td>
<td>系统商编号 (支付宝交易使用)</td>
<td>int</td>
<td>N</td>
<td>5</td>
<td>系统商编号 该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID</td>
</tr>
<tr>
<td>21</td>
<td>orderSource</td>
<td>订单来源</td>
<td>int</td>
<td>Y</td>
<td>16</td>
<td>16 新接口</td>
</tr>
<tr>
<td>22</td>
<td>longitude</td>
<td>用户地址位罱(经度)</td>
<td>string</td>
<td>N</td>
<td>用户地址位罱(经度)</td>
<td>用户地址位罱(经度)</td>
</tr>
<tr>
<td>23</td>
<td>latitudle</td>
<td>用户地址位置(纬度)</td>
<td>string</td>
<td>N</td>
<td>用户地址位置(纬度)</td>
<td>用户地址位置(纬度)</td>
</tr>
<tr>
<td>24</td>
<td>clientIp</td>
<td>客户端ip</td>
<td>string</td>
<td>N</td>
<td>客户端ip</td>
<td>客户端ip</td>
</tr>
</tbody>
</table>
<hr />
<h4>goodsDetail</h4>
<table>
<thead>
<tr>
<th><strong>NO</strong></th>
<th><strong>字段</strong></th>
<th><strong>名称</strong></th>
<th><strong>长度</strong></th>
<th><strong>必填</strong></th>
<th><strong>示例</strong></th>
<th><strong>说明</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>goodsId</td>
<td>商品编码</td>
<td>string</td>
<td>N</td>
<td>1</td>
<td>对接商户传递的自己业务体系的商品编码</td>
</tr>
<tr>
<td>2</td>
<td>goodsName</td>
<td>商品名称</td>
<td>string</td>
<td>N</td>
<td>可乐</td>
<td>对接商户传递的自己业务体系的商品名称</td>
</tr>
<tr>
<td>3</td>
<td>price</td>
<td>商品单价(元)</td>
<td>string</td>
<td>N</td>
<td>3</td>
<td>对接商户传递的自己业务体系的商品单价</td>
</tr>
<tr>
<td>4</td>
<td>quantity</td>
<td>商品数量</td>
<td>string</td>
<td>N</td>
<td>1</td>
<td>对接商户传递的自己业务体系的商品数量(与重量二选一)</td>
</tr>
<tr>
<td>5</td>
<td>goodsWeight</td>
<td>商品计重</td>
<td>string</td>
<td>N</td>
<td>1</td>
<td>对接商户传递的自己业务体系的商品重量(与数量二选一)</td>
</tr>
</tbody>
</table>
<h4>响应参数</h4>
<table>
<thead>
<tr>
<th><strong>NO</strong></th>
<th><strong>字段</strong></th>
<th><strong>名称</strong></th>
<th><strong>长度</strong></th>
<th><strong>必填</strong></th>
<th><strong>示例</strong></th>
<th><strong>说明</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>code</td>
<td>结果</td>
<td>string</td>
<td>Y</td>
<td>SUCCESS</td>
<td>查询交易结果 SUCCESS:表示查询成功FAILED:表示查询失败</td>
</tr>
<tr>
<td>2</td>
<td>msg</td>
<td>结果描述</td>
<td>string</td>
<td>Y</td>
<td>登陆成功</td>
<td>无论是成功或者失败,message都会针对于当前的结果返回响应的结果描述</td>
</tr>
<tr>
<td>3</td>
<td>subCode</td>
<td>错误代码</td>
<td>string</td>
<td>N</td>
<td>LOGIN_ERROR</td>
<td>如果code为FAILED,subcode会返回详细的错误code,以便错误信息描述的更加精确</td>
</tr>
<tr>
<td>4</td>
<td>subMsg</td>
<td>错误描述</td>
<td>string</td>
<td>N</td>
<td>EW_N2320993253</td>
<td>如果code为FAILED,subMsg会返回详细的错误描述,以便错误信息描述的更加精确</td>
</tr>
<tr>
<td>5</td>
<td>sign</td>
<td>签名</td>
<td>string</td>
<td>Y</td>
<td>1b70687c8a4c72f50c749baf95a482c0</td>
<td>请求时传递的sign</td>
</tr>
<tr>
<td>6</td>
<td>random</td>
<td>随机数</td>
<td>string</td>
<td>Y</td>
<td>123</td>
<td>请求时传递的随机数</td>
</tr>
<tr>
<td>7</td>
<td>payType</td>
<td>支付类型</td>
<td>string</td>
<td>Y</td>
<td>WXPAY</td>
<td>支付类型 WXPAY:微信支付 ALIPAY:支付宝支付 MPAY:会员支付</td>
</tr>
<tr>
<td>8</td>
<td>totalAmount</td>
<td>订单总金额</td>
<td>double</td>
<td>Y</td>
<td>88.88</td>
<td>单位为元,精确到小数点后两位,取值范围[0.01至100000000]</td>
</tr>
<tr>
<td>9</td>
<td>transactionId</td>
<td>二维码链接</td>
<td>string</td>
<td>N</td>
<td>4200000008201711083273098279</td>
<td>tradeType为'JSAPI'时返回的交易订单号(支付宝支付返回)</td>
</tr>
<tr>
<td>10</td>
<td>appId</td>
<td>jsapi参数</td>
<td>string</td>
<td>N</td>
<td>appId</td>
<td>tradeType为'JSAPI'时返回的调用参数(微信支付返回)</td>
</tr>
<tr>
<td>11</td>
<td>timeStamp</td>
<td>jsapi参数</td>
<td>string</td>
<td>N</td>
<td>timeStamp</td>
<td>tradeType为'JSAPI'时返回的调用参数(微信支付返回)</td>
</tr>
<tr>
<td>12</td>
<td>nonceStr</td>
<td>jsapi参数</td>
<td>string</td>
<td>N</td>
<td>nonceStr</td>
<td>tradeType为'JSAPI'时返回的调用参数(微信支付返回)</td>
</tr>
<tr>
<td>13</td>
<td>signType</td>
<td>jsapi参数</td>
<td>string</td>
<td>N</td>
<td>signType</td>
<td>tradeType为'JSAPI'时返回的调用参数(微信支付返回)</td>
</tr>
<tr>
<td>14</td>
<td>paySign</td>
<td>jsapi参数</td>
<td>string</td>
<td>N</td>
<td>paySign</td>
<td>tradeType为'JSAPI'时返回的调用参数(微信支付返回)</td>
</tr>
<tr>
<td>15</td>
<td>payPackage</td>
<td>jsapi参数</td>
<td>string</td>
<td>N</td>
<td>payPackage</td>
<td>tradeType为'JSAPI'时返回的调用参数(微信支付返回)</td>
</tr>
<tr>
<td>16</td>
<td>orderRemark</td>
<td>订单备注</td>
<td>string</td>
<td>N</td>
<td>订单备注</td>
<td>在联拓富后台展示到订单列表里</td>
</tr>
<tr>
<td>17</td>
<td>outTradeNo</td>
<td>商户订单号</td>
<td>string</td>
<td>N</td>
<td>CS100082018050166666</td>
<td>由商户生成的该笔交易的全局唯一ID,商户需确保其唯一性,重新发起一笔支付要使用新订单号,避免重复支付。后续可通过该ID查询对应订单信息。 建议值:公司简称+门店编号+时间戳+序列 支持8-64位数字、英文字母、“-”及“_”,其他字符不支持</td>
</tr>
<tr>
<td>18</td>
<td>discountAmount</td>
<td>优惠金额(有营销活动或用券时返回)</td>
<td>double</td>
<td>N</td>
<td>22.22</td>
<td>单位为元,精确到小数点后两位,取值范围[0.01至100000000</td>
</tr>
</tbody>
</table>
<p><br/><br/></p>
<h5>请求示例:</h5>
<pre><code>outTradeNo=2018072515000001&amp;totalAmount=0.05&amp;noDiscountAmount=0.02&amp;channel=WXPAY&amp;tradeType=JSAPI¬ifyUrl=www.baidu.com&amp;openId=oHucvv4MwGLtWUKG3mxOm-wJHUxs&amp;goodsDetail=%5B%7BgoodsId%3A6920907805161%2C++goodsName%3A%E5%8F%A3%E9%A6%99%E7%B3%96%2C+++quantity%3A1%2C+price%3A0.05%7D%5D&amp;operatorId=10181383&amp;sign=f2a9547833c81d09090b5519b38a49c9&amp;appId=SC_I5640724439&amp;random=6666666666666666666&amp;merchantCode=SC_I2528987310</code></pre>
<h5>响应示例(成功):</h5>
<pre><code class="language-json">{
&quot;appId&quot;:&quot;wxcccc8abc4b42abab&quot;,
&quot;timeStamp&quot;:&quot;1535531292&quot;,
&quot;nonceStr&quot;:&quot;2640e27ae4d30e94066833c425f89e15&quot;,
&quot;signType&quot;:&quot;MD5&quot;,
&quot;paySign&quot;:&quot;50EEA3B57745EAB9473574CDCA00BA59&quot;,
&quot;payPackage&quot;:&quot;prepay_id=wx291628120584976c5e5793db3032644135&quot;,
&quot;outTradeNo&quot;:&quot;CS100082018050166666JSAPI2&quot;,
&quot;payType&quot;:&quot;WXPAY&quot;,
&quot;totalAmount&quot;:0.01,
&quot;discountAmount&quot;:0.0,
&quot;code&quot;:&quot;SUCCESS&quot;,
&quot;msg&quot;:&quot;获取支付链 接成功&quot;,
&quot;random&quot;:&quot;123&quot;,
&quot;sign&quot;:&quot;7766f3431f12bb27fea2576ff7ba02c2&quot;
}</code></pre>
<h5>响应示例(失败):</h5>
<pre><code class="language-json">{
&quot;code&quot;:&quot;FAILED&quot;,
&quot;msg&quot;:&quot;无效的APPID&quot;,
&quot;subCode&quot;:&quot;APPID_ERROR&quot;,
&quot;subMsg&quot;:&quot;APPID 参数错误&quot;
}</code></pre>
<h5>错误码</h5>
<table>
<thead>
<tr>
<th>错误码</th>
<th>错误描述</th>
<th>建议处理</th>
</tr>
</thead>
<tbody>
<tr>
<td>TRADE_REPEAT_ORDER_ERROR</td>
<td>订单号重复</td>
<td>更换订单号重新请求支付</td>
</tr>
<tr>
<td>APPID_ERROR</td>
<td>APPID 参数错误</td>
<td>核实自己的appid是否正确</td>
</tr>
<tr>
<td>PAY_CONFIG_ERROR</td>
<td>支付配置错误</td>
<td>核实门店是否勾选支付配置</td>
</tr>
<tr>
<td>SYSTEM_ERROR</td>
<td>系统异常</td>
<td>调用订单查询确认订单状态</td>
</tr>
</tbody>
</table>