接口应在服务端调用，不可在前端（小程序、网页、APP等）直接调用。具体可参考[接口接入指南](https://www.yuque.com/shunchenghuichuang/iasgxw/lw3ftk64nq0f2gsg)。

接口英文名：SimplePay

<font style="color:rgb(34, 34, 34);">本接口用于发起简易支付</font>。消费者可通过微信或者支付宝打开返回的支付链接进行支付。

1. <font style="color:#E8323C;">当前简易支付返回的支付链接为聚合链接，支持使用微信APP和支付宝APP打开进行支付。但是同一个简易支付链接，如果消费者已经使用微信APP打开过后，不可再使用支付宝APP打开再进行支付。</font>
2. 消费者用微信APP或者支付宝APP打开交易中心提供的简易支付链接后，需要1分钟内完成支付，如超时未支付，需要重新下单获取新的简易支付链接。
3. 简易支付的原理是：消费者打开交易中心提供的简易支付链接后，由交易中心获取消费者在交易中心的APPID下的openid,并通过JSAPI的支付方式进行下单获取支付参数，最后唤起用户的付款页面。本质上该支付方式为JSAPI支付。
4. <font style="color:#E8323C;">交易中心会根据业务的发展，视情况增加请求参数和返回参数，请服务商/商户侧提前做好兼容。</font>

## 1、调用方式
### HTTPS调用
`POST   <font style="color:rgb(52,64,84);">/api/app/payOreder/simplePay</font>`

## 2、请求参数
### <font style="color:rgb(34, 34, 34);">请求体 </font>`<font style="color:rgb(34, 34, 34);">Request Payload</font>`
| 参数名 | 类型 | 必填 | 字段长度 | 说明 |
| :--- | :--- | :--- | :--- | :--- |
| service | string | 是 | - | 接口名称。<font style="color:rgb(232,50,60);">此处固定值为：get_tdcode</font> |
| t0 | string | 否 | 1 | D0交易标志，默认为0<br/>0：D1交易 <br/>1：D0交易 |
| jspay_flag | string | 是 | 1 | 支付方式。<br/><font style="color:rgb(232,50,60);">本处固定填写：2</font> |
| sign_type | string | 否 | 10 | 接口签名类型，枚举如下：<br/>MD5：MD5签名算法<br/>SM3：国密SM3签名算法   不传默认使用MD5算法 |
| merchant_id | string | 是 | 10 | 财务交易中心商户号 |
| third_order_id | string | 是 | 64 | 商户订单号。<br/>由商户或者服务商自行定义，可以包含字母。需确保同一个商户下唯一 |
| amount | string | 是 | 10 | 订单金额。<br/>单位为分，整数 |
| nonce_str | string | 是 | 32 | 随机字符串 |
| sign | string | 是 | 32 | 签名 |
| req_serial_no | string | 是 | 32 | 本次交易的请求流水号 |
| jump_url | string | 否 | - | 支付跳转地址。<br/><font style="color:rgb(232,50,60);">当前跳转效果已不生效，服务商/商户可随意传一个地址, 或者不传该参数。</font> |
| user_name | string | 否 | - | 收银员名称 |
| notify_url | string | 否 | 128 | 交易通知地址。<br/>接收财务交易中心通知的URL，需做UrlEncode 处理，需要绝对路径，确保顺成能正确访问，若不需要回调请忽略 |
| client_ip | string | 否 | 16 | 用户IP地址。<br/>商户发起交易的IP地址 |
| body | string | 否 | 256 | 商品描述。不能包含回车、换行等特殊字符。<br/><font style="color:rgb(245,34,45);">该信息会展示在微信付款页面的“商品”中</font> |
| shop_no | string | 否 | 16 | 商户门店编号。<br/>只能是汉字、英文字母、数字 |
| attach | string | 否 | 96 | 附加数据。支付成功原样返回。<br/>注意：只能是汉字、英文字母、数字 |
| limit_pay | string | 否 | 1 | 是否禁用信用卡，枚举如下：<br/>1：禁止使用信用卡；<br/>0或者不填：不限制 |
| goods_tag | string | 否 | 32 | 订单优惠标记，，代金券或立减优惠功能。<br/>该参数财务交易中心透传给微信，当前仅对微信交易生效 |
| goods_detail | string | 否 | 8000 | 单品优惠商品详情。<br/>该字段为JSON格式的字符串<br/>1. 微信交易时，该参数透传给微信，对应微信的detail参数，主要用于微信的单品营销。<br/>参数具体内容详见下方 |
| scene_info | string | 否 | - | 场景信息。<br/><font style="color:rgb(0,0,0);">该字段用于上报场景信息，</font><font style="color:rgb(245,34,45);">仅针对微信交易有效，透传至微信。</font><font style="color:rgb(0,0,0);">目前支持上报实际门店信息。</font><br/><font style="color:rgb(245,34,45);">该字段</font><font style="color:rgb(245,34,45);">为</font><font style="color:rgb(245,34,45);">JSON</font><font style="color:rgb(245,34,45);">格式的字符串。</font><br/><font style="color:rgb(0,0,0);">参数具体内容：{"store_info":{"id": "门店 ID","name ": "名称","area_code": "编码","address": "地址"}}</font> |
| need_receipt | boolean | 否 | - | 电子发票功能。<br/>仅针对微信交易有效，需要和微信公众平台的发票功能联合使用。枚举如下：<br/>1. true<br/>2. false<br/>（只能为true或false，只支持全小写字母或全大写字母） |
| gps_info | string | 否 | 512 | gps信息。<br/>校验GPS信息格式， 如：-128.12,23.1    -- 1. xxx,xxx   -- 2. 经度xxx为[-180，180]之间的浮点数，维度 |
| bs_info | string | 否 | 512 | 基站信息。<br/>校验基站信息格式, <br/>格式说明：   -- 1. 格式为：xxx,xxx,xxx,xxx 如：460,1,12,23454   -- 2. xxx均为整数，长度不超过11位<br/>基站信息，从左至右依次对应以下几个字段：   mcc: 移动国家号码，由3位数字组成，唯一地识别移动用户所属的国家。我国为460   mnc:移动网号，由两位数字组成，用于识别移动用户所归属的移动网   lac:位置区编码,为寻呼而设置的一个区域，覆盖一片地理区域，按寻呼量划分   ci :负责收发的天线所朝向的扇区编号 |


#### `goods_detail字段说明`
微信交易时，该参数对应透传至微信的detail参数

| 参数名 | 类型 | 必填 | 字段长度 | 说明 |
| :--- | :--- | :--- | :--- | :--- |
| <font style="color:rgb(0,0,0);">cost_price</font> | int | 否 | - | <font style="color:rgb(0,0,0);">订单原价。</font><br/><font style="color:rgb(0,0,0);">1.</font><font style="color:rgb(0,0,0);">商户侧一张小票订单可能被分多次支付，订 单原价用于记录整张小票的交易金额。 </font><br/><font style="color:rgb(0,0,0);">2.</font><font style="color:rgb(0,0,0);">当订单原价与支付金额不相等，则不享受优惠。 </font><br/><font style="color:rgb(0,0,0);">3.该字段主要用于防止同一张小票分多次支 付，以享受多次优惠的情况，正常支付订单不 必上传此参数</font> |
| <font style="color:rgb(0,0,0);">receipt_id</font> | string | 否 | 32 | <font style="color:rgb(0,0,0);">商品小票 ID。商家小票 ID</font> |
| <font style="color:rgb(0,0,0);">goods_detail</font> | object | 是 | - | <font style="color:rgb(0,0,0);">单品列表</font><font style="color:rgb(0,0,0);">。</font><br/><font style="color:rgb(0,0,0);">单品信息，使用 Json 数组格式提交</font> |
|                                ┗<font style="color:rgb(0,0,0);">goods_id</font> | string | 是 | 32 | <font style="color:rgb(0,0,0);">商品编码。</font><br/><font style="color:rgb(0,0,0);">由半角的大小写字母、数字、中划线、下划线中的一种或几种组成</font> |
|               ┗<font style="color:rgb(0,0,0);">wxpay_goods _id</font> | string | 否 | 32 | <font style="color:rgb(0,0,0);">微信侧商品编码。</font><br/><font style="color:rgb(0,0,0);">微信支付定义的统一商品编号（没有可不传）</font> |
|              ┗<font style="color:rgb(0,0,0);">goods_name</font> | string | 否 | 256 | <font style="color:rgb(0,0,0);">商品名称。</font><br/><font style="color:rgb(0,0,0);">商品的实际名称</font> |
|      ┗<font style="color:rgb(0,0,0);">quantity</font> | int | 是 | - | 商品数量。<br/><font style="color:rgb(0,0,0);">用户购买的数量</font> |
|              ┗<font style="color:rgb(0,0,0);">price</font> | int | 是 | - | 商品单价。<font style="color:rgb(0,0,0);">单位为：分。</font><br/><font style="color:rgb(0,0,0);">如果商户有优惠，需传输商户优惠后的单价(例如：用户对一笔 100 元的订单使用了商场发的优惠券 100-50，则活动商品的单价应为原单价-50)</font> |


#### `<font style="color:rgb(0,0,0);">scene_info</font>字段说明`
| 参数名 | 类型 | 必填 | 字段长度 | 说明 |
| :--- | :--- | :--- | :--- | :--- |
| <font style="color:rgb(0,0,0);">id</font> | string | <font style="color:rgb(0,0,0);">否</font> | 32 | <font style="color:rgb(0,0,0);">门店 id。门店唯一标识</font> |
| <font style="color:rgb(0,0,0);">name</font> | string | 否 | 64 | 门店名称 |
| <font style="color:rgb(0,0,0);">area_code</font> | string | 否 | 6 | 门店行政区划码。<font style="color:rgb(0,0,0);">门店所在地行政区划码</font> |
| <font style="color:rgb(0,0,0);">address</font> | string | 否 | 128 | <font style="color:rgb(0,0,0);">门店详细地址</font> |


## 3、返回参数
### <font style="color:rgb(34, 34, 34);">返回体 </font>`<font style="color:rgb(34, 34, 34);">Response Payload</font>`
XML格式返回

| 参数名 | 类型 | 说明 |
| :--- | :--- | :--- |
| resp_code | string | 通信状态码。<br/>200 - 成功。<br/>非200 - 失败。<br/>注：此字段是通信标识，业务状态要看result_code |
| resp_msg | string | 通信错误说明<br/>resp_code非200时返回 |
| req_serial_no | string | 本次交易的请求流水号，原样返回 |
| <font style="color:rgb(232,50,60);">以下参数在resp_code=200时返回</font> | | |
| result_code | string | 业务状态码。<br/>0 - 支付受理成功<br/>非0 - 支付受理失败 |
| error_code | string | 支付失败错误码。<br/>支付失败时返回<br/>错误码 |
| error_msg | string | 支付失败原因。<br/>支付失败时返回具体失败原因说明 |
| nonce_str | string | 随机字符串 |
| sign | string | 签名 |
| sign_type | string | 签名类型，枚举如下：<br/>MD5：MD5签名算法<br/>SM3：国密SM3签名算法   返回接口请求时设定的签名类型进行签名。 |
| cost_time | string | 请求耗时。<br/>请求接口耗费的时间，单位毫秒 |
| merchant_id | string | 财务交易中心商户号 |
| third_order_id | string | 商户订单号。<br/>由商户/服务商侧自主生成 |
| schc_order_id | string | 财务交易中心交易订单号 |
| <font style="color:rgb(232,50,60);">以下参数在result_code=0时返回</font> | | |
| jspay_url | string | 简易支付url。<br/>重定向到该url可以完成后续支付流程。<br/>返回二维码链接有效期为10分钟。<br/><font style="color:rgb(232,50,60);">特别说明：获取该链接成功，并不一定代表该链接可进行支付。</font> |


## 4、注意事项


## 5、代码示例
请求参数：

```json
{
    "service": "get_tdcode",
    "jspay_flag": "2",
    "sign_type": "MD5",
    "merchant_id": "0000000038",
    "third_order_id": "17730391726943A1F3E866823",
    "amount": "1",
    "nonce_str": "17730391726943A1F3E866823",
    "req_serial_no": "17730391726943A1F3E866823",
    "sign": "YzRkMTIzMDIzYWE0MTBkN2ExODY2ZTExNzVmNTI5MDg="
}
```

<font style="color:rgb(52, 64, 84);"></font>

<font style="color:rgb(52, 64, 84);">返回参数：</font>

```html
<schc>
    <resp_code><![CDATA[200]]></resp_code>
    <merchant_id><![CDATA[8153213715]]></merchant_id>
    <sign><![CDATA[0DA80E12DB46CA8EFE3FFA2404CC9F26]]></sign>
    <cost_time><![CDATA[6]]></cost_time>
    <sign_type><![CDATA[MD5]]></sign_type>
    <third_order_id><![CDATA[m20221009182459szeGpPEJ]]></third_order_id>
    <nonce_str><![CDATA[ergcktjerpwjiltjohjsgypnijggqckr]]></nonce_str>
    <jspay_url><![CDATA[https://qr.leshuazf.com/cgi-bin/qr/simple_pay.cgi?mid=8153213715&pu=1ux1Z1001602371522282]]></jspay_url>
    <result_code><![CDATA[0]]></result_code>
    <schc_order_id><![CDATA[1001602371522282]]></schc_order_id>
    <req_serial_no><![CDATA[17730391726943A1F3E866823]]></req_serial_no>
</schc>
```
