小程序下单
<p><strong>使用场景:</strong> </p>
<ul>
<li>用户在自己订单系统下单,获取了订单信息后,将相关参数传入通企付小程序,通企付小程序负责渠道下单支付,并返回结果。</li>
</ul>
<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>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">mchNo</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>商户号</td>
</tr>
<tr>
<td style="text-align: left;">appId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>应用ID</td>
</tr>
<tr>
<td style="text-align: left;">reqTime</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>请求时间,13位时间戳</td>
</tr>
<tr>
<td style="text-align: left;">version</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>版本(默认为1.0)</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名</td>
</tr>
<tr>
<td style="text-align: left;">signType</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名类型(MD5/RSA/SM2)</td>
</tr>
<tr>
<td style="text-align: left;">mchOrderNo</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>商户订单号</td>
</tr>
<tr>
<td style="text-align: left;">amount</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>金额(单位:分)</td>
</tr>
<tr>
<td style="text-align: left;">body</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>商品描述</td>
</tr>
<tr>
<td style="text-align: left;">goodsInfo</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>商品备注,为List<Goods>的JSON字符串,使用B2B订单支付时必填</td>
</tr>
<tr>
<td style="text-align: left;">notifyUrl</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>通知地址</td>
</tr>
<tr>
<td style="text-align: left;">expiredTime</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>订单失效时间,单位秒,默认1小时.订单在(创建时 间+失效时间)后失效</td>
</tr>
<tr>
<td style="text-align: left;">remark</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>订单备注</td>
</tr>
<tr>
<td style="text-align: left;">channelExtra</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>渠道参数,JSON字符串,特定渠道发起的额外参数,例:收银宝子商户号cusid,集团商户号orgid,微信appid即subAppid</td>
</tr>
<tr>
<td style="text-align: left;">payTypeInfo</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>收银台展示的付款方式,以逗号(,)隔开;<strong>注释</strong>:WX_PAY(微信),ALI_PAY(支付宝),C_PAY(个人银行卡),B_PAY(企业网银),LOAN_PAY(信用支付);</td>
</tr>
<tr>
<td style="text-align: left;">directPayType</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>直接支付的支付方式(填入该参数则自动使用该支付方式下单并拉起支付,当前支持WX_LITE:微信小程序支付;SFT_HRJ:通联汇入金;ALI_QR:支付宝支付;ALI_CREDIT:花呗分期;SYB_B2C_WECHAT:微信小程序收银台支付)</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">Goods参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">goodsnm</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>商品简称</td>
</tr>
<tr>
<td style="text-align: left;">goodsamt</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>商品金额(单位:元)</td>
</tr>
<tr>
<td style="text-align: left;">goodsnum</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>商品数量</td>
</tr>
</tbody>
</table>
<p><strong>响应参数</strong> </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">string</td>
<td>success:支付成功;cancel:取消支付;fail:支付失败</td>
</tr>
<tr>
<td style="text-align: left;">errmsg</td>
<td style="text-align: left;">string</td>
<td>响应内容(当code为cancel、fail有值)</td>
</tr>
</tbody>
</table>
<p><strong>调用示例,示例仅展示部分字段,具体字段自行根据业务需求填写:</strong> </p>
<p>小程序收银台原始 ID:gh_4fa331e708fb
小程序收银台 appId:wxe48aedff31caaf2d</p>
<p>小程序调起收银台小程序:</p>
<pre><code> wx.openEmbeddedMiniProgram({
appId: &quot;wxe48aedff31caaf2d&quot;,
path:&quot;pages/index/index&quot;,
extraData:{
拼写请求参数
},
success: function (res) {
console.log(&quot;成功回调返回的res:&quot; + JSON.stringify(res))
},
fail: function (res) {
console.log(&quot;失败回调返回的res:&quot; + JSON.stringify(res))
},
complete: function () {
console.log(&quot;完成调用&quot;)
}
})</code></pre>
<p>通过上述方法会调起收银台半屏小程序,在收银台中完成支付后,会回调支付结果,具体结果可以在小程序生命周期Page.onShow中通过以下方式获取:</p>
<pre><code>onShow: function () {
let options = wx.getEnterOptionsSync();
if (options.scene == '1038' &amp;&amp;
options.referrerInfo.appId=='wxe48aedff31caaf2d') {
// 代表从收银台小程序返回
let extraData = options.referrerInfo.extraData;
if (!extraData) {
// &quot;当前通过物理按键返回,未接收到返参,建议自行查询交易结果&quot;;
} else {
if (extraData.code == 'success') {
// &quot;支付成功&quot;;
} else if (extraData.code == 'cancel') {
// &quot;支付已取消&quot;;
} else {
// &quot;支付失败:&quot; + extraData.errmsg;
}
}
}
},</code></pre>
<p><strong>APP调起小程序收银台</strong></p>
<p>Android开发示例:</p>
<p><a href="https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/Android_Development_example.html">https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/Android_Development_example.html</a></p>
<p>iOS开发示例:</p>
<p><a href="https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/iOS_Development_example.html">https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/iOS_Development_example.html</a></p>
<p>调起方式如上文档,这里展示部分字段,具体字段自行根据业务需求填写</p>
<p>path=pages/index/index?mchNo=平台分配的商户号&appId=平台分配的应用ID&reqTime=请求时间&version=1.0&sign=签名&signType=MD5&mchOrderNo=商户唯一订单号&amount=金额&expiredTime=失效时间&body=描述
<strong>微信环境H5调起小程序收银台</strong></p>
<p>微信环境前端h5拉起小程序的能力可以参考微信官方文档:
<a href="https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html">https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html</a>
JS-SDK引入的初始化步骤详见上诉文档,具体下单业务字段根据业务需求填写在extraData中</p>
<p>appId: "wxe48aedff31caaf2d",
path=pages/index/index;
<span style="color:red">//注意extraData字段为json字符串</span>
extraData={
下单参数
}</p>