> ## Documentation Index
> Fetch the complete documentation index at: https://opendocs.xft.xin/llms.txt
> Use this file to discover all available pages before exploring further.

# 附录

## 订单状态详情

| state | 详情        |
| ----- | --------- |
| `00`  | 支付成功/退款成功 |
| `01`  | 支付失败/退款失败 |
| `03`  | 部分退款      |
| `04`  | 全部退款      |
| `06`  | 已撤销       |
| `09`  | 待支付/待退款   |
| `98`  | 已关闭       |

## 支付产品属性值

| product 属性值                  | 支付产品名称      |
| ---------------------------- | ----------- |
| `WECHAT_OFFICE_ACCOUNT`      | 微信公众号支付     |
| `WECHAT_DYNAMIC_SCAN_CODE`   | 微信扫码支付      |
| `WECHAT_SWIPING_CARD`        | 微信刷卡支付      |
| `WECHAT_LITE`                | 微信小程序支付     |
| `WECHAT_PARKING`             | 微信无感支付      |
| `ALIPAY_DYNAMIC_SCAN_CODE`   | 支付宝扫码支付     |
| `ALIPAY_BAR_CODE`            | 支付宝条码支付     |
| `ALIPAY_FIXED_QRCODE`        | 支付宝固定二维码支付  |
| `ALIPAY_H5`                  | 支付宝 H5 支付   |
| `ALIPAY_PARKING`             | 支付宝无感支付     |
| `ALIPAY_APP`                 | 支付宝APP支付    |
| `FIXED_CODE`                 | 聚合码支付       |
| `AGGREGATION_OFFICE_ACCOUNT` | 聚合公众号支付     |
| `PASS_FREE`                  | 小额免密支付      |
| `BAR_CODE`                   | 条码支付        |
| `CMPAY_H5`                   | 和包H5支付      |
| `UNIONPAY_DYNAMIC_SCAN_CODE` | 银联动态扫码支付    |
| `UNIONPAY_SWIPING_CARD`      | 银联条码支付      |
| `WITHHOLD`                   | 代扣          |
| `CASHIERPAY`                 | 收银台支付       |
| `B2B_PAY`                    | B2B支付       |
| `CARD_PAY`                   | 卡包支付        |
| `WECHAT_LITE_CASHIER`        | 小程序收银台      |
| `APP_TO_WECHAT_LITE`         | APP跳微信小程序支付 |

## 支付渠道属性值

| channel 属性值 | 支付渠道名称 |
| ----------- | ------ |
| `WECHAT`    | 微信支付   |
| `SPDB`      | 浦发支付   |
| `HKB`       | 汉口支付   |
| `SWIFTPASS` | 威富通支付  |
| `YS`        | 银盛支付   |
| `ALIPAY`    | 支付宝支付  |
| `CCB`       | 建行支付   |
| `SDP`       | 盛付通支付  |
| `ICBC`      | 工商银行支付 |
| `SXF`       | 随行付支付  |
| `CUP`       | 银联支付   |
| `CMPAY`     | 和包支付   |
| `HKBV2`     | 汉口2.0  |
| `JLPAY`     | 嘉联支付   |
| `CUPPARK`   | 银联金融   |
| `TF`        | 传化支付   |
| `IPSPAY`    | 环讯支付   |
| `CMB`       | 招商银行   |
| `CPCN`      | 中金支付   |
| `UPCARD`    | 礼品卡支付  |

## 支付 extra 参数说明

特定渠道发起交易时需要的额外参数。

### WECHAT\_APP

| 字段           | 是否必选 | 字段类型   | 字段说明                  |
| ------------ | ---- | ------ | --------------------- |
| `sub_app_id` | 是    | String | 特约商户在微信开放平台上申请的 APPID |

### WECHAT\_OFFICE\_ACCOUNT / WECHAT\_LITE

| 字段            | 是否必选 | 字段类型   | 字段说明                |
| ------------- | ---- | ------ | ------------------- |
| `sub_app_id`  | 是    | String | 子商户公众账号 ID          |
| `sub_open_id` | 是    | String | 用户在子商户 appid 下的唯一标识 |

### WECHAT\_DYNAMIC\_SCAN\_CODE

| 字段            | 是否必选 | 字段类型   | 字段说明                |
| ------------- | ---- | ------ | ------------------- |
| `sub_app_id`  | 否    | String | 子商户公众账号 ID          |
| `sub_open_id` | 否    | String | 用户在子商户 appid 下的唯一标识 |
| `product_id`  | 是    | String | 二维码中包含的商品 ID        |

### WECHAT\_SWIPING\_CARD

| 字段           | 是否必选 | 字段类型   | 字段说明       |
| ------------ | ---- | ------ | ---------- |
| `sub_app_id` | 否    | String | 子商户公众账号 ID |
| `auth_code`  | 是    | String | 付款码        |

### WECHAT\_H5

| 字段             | 是否必选 | 字段类型   | 字段说明                                |
| -------------- | ---- | ------ | ----------------------------------- |
| `sub_app_id`   | 否    | String | 子商户公众账号 ID                          |
| `sub_open_id`  | 否    | String | 唯一标识                                |
| `scene_info`   | 是    | String | 网站应用 h5\_info                       |
| `device_info`  | 是    | String | iOS\_SDK/AND\_SDK/iOS\_WAP/AND\_WAP |
| `mch_app_name` | 是    | String | 应用名或网站名                             |
| `mch_app_id`   | 是    | String | 应用唯一标识或网站首页 URL                     |

### WECHAT\_PARKING

| 字段           | 是否必选 | 字段类型   | 字段说明             |
| ------------ | ---- | ------ | ---------------- |
| `sub_app_id` | 是    | String | 商户在微信配置的 app\_id |
| `scene_info` | 是    | String | 无感支付参数 JSON      |

#### scene\_info 解释（微信无感）

| 字段              | 是否必选 | 字段类型   | 字段说明                       |
| --------------- | ---- | ------ | -------------------------- |
| `start_time`    | 是    | String | 进入停车时间                     |
| `end_time`      | 是    | String | 出停车场时间                     |
| `charging_time` | 是    | String | 计费时长（秒）                    |
| `plate_number`  | 是    | String | 车牌号                        |
| `car_type`      | 是    | String | 车辆类型                       |
| `parking_name`  | 是    | String | 停车场名称                      |
| `free_time`     | 是    | String | 免费时长                       |
| `contract_id`   | 否    | String | 签约合同编号（ channel 为 BCS 时必传） |

### CASHIERPAY

| 字段        | 是否必选 | 字段类型   | 字段说明          |
| --------- | ---- | ------ | ------------- |
| `user_id` | 是    | String | 用户id（最大长度 20） |

### ALIPAY\_BAR\_CODE

| 字段          | 是否必选 | 字段类型   | 字段说明 |
| ----------- | ---- | ------ | ---- |
| `auth_code` | 是    | String | 付款码  |

### ALIPAY\_FIXED\_QRCODE

| 字段         | 是否必选 | 字段类型   | 字段说明   |
| ---------- | ---- | ------ | ------ |
| `buyer_id` | 是    | String | 付款人 ID |

### BAR\_CODE

| 字段        | 是否必选 | 字段类型   | 字段说明 |
| --------- | ---- | ------ | ---- |
| `qr_code` | 是    | String | 付款码  |

### SIGN\_WITHHOLD

| 字段                 | 是否必选 | 字段类型   | 字段说明        |
| ------------------ | ---- | ------ | ----------- |
| `agreement_no`     | 否    | String | 预签约返回的签约号   |
| `out_agreement_no` | 否    | String | 预签约上传的外部签约号 |

### ALIPAY\_PARKING

| 字段           | 是否必选 | 字段类型   | 字段说明 |
| ------------ | ---- | ------ | ---- |
| `scene_info` | 是    | String | 停车参数 |

#### scene\_info 解释（支付宝无感）

| 字段              | 是否必选 | 字段类型   | 字段说明                  |
| --------------- | ---- | ------ | --------------------- |
| `start_time`    | 是    | String | 进入停车时间 yyyyMMddHHmmss |
| `charging_time` | 是    | String | 计费时长（秒）               |
| `plate_number`  | 是    | String | 车牌号                   |

### PASS\_FREE

| 字段                 | 是否必选 | 字段类型   | 字段说明  |
| ------------------ | ---- | ------ | ----- |
| `out_agreement_no` | 否    | String | 外部签约号 |
| `agreement_no`     | 否    | String | 签约号   |

### PASS\_FREE / ICBC

| 字段           | 是否必选 | 字段类型   | 字段说明    |
| ------------ | ---- | ------ | ------- |
| `msg_id`     | 是    | String | 请求消息标识  |
| `notify_url` | 是    | String | 签约服务端回调 |
| `return_url` | 是    | String | 签约前端回调  |

### WITHHOLD

| 字段               | 是否必选 | 字段类型   | 字段说明       |
| ---------------- | ---- | ------ | ---------- |
| `protocal_no`    | 否    | String | 协议编号       |
| `user_type`      | 否    | String | 用户类型（1-对私） |
| `id_type`        | 否    | String | 证件类型       |
| `id_no`          | 否    | String | 证件号码       |
| `bank_acct_type` | 否    | String | 银行账户类型     |
| `bank_acct_no`   | 否    | String | 银行账户编号     |

### CARD\_PAY

| 字段                    | 是否必选 | 字段类型   | 字段说明              |
| --------------------- | ---- | ------ | ----------------- |
| `login_id`            | 是    | String | 登录id              |
| `login_id_type`       | 是    | String | 登录id类型            |
| `verify_pay_password` | 是    | String | 是否校验密码 true/false |
| `pay_password`        | 否    | String | 支付密码              |
| `is_part_consume`     | 是    | String | 是否支持部分消费 Y/N      |
| `source`              | 否    | String | 操作渠道              |
| `channel`             | 否    | String | 会员渠道              |

## 支付 微信 detail 说明

微信商品详情描述，压缩后总长度不能超过 6144 字节。

| 字段             | 是否必选 | 字段类型   | 字段说明     |
| -------------- | ---- | ------ | -------- |
| `cost_price`   | 是    | String | 订单原价     |
| `invoice_id`   | 是    | String | 商家小票ID   |
| `goods_detail` | 是    | String | 订单商品明细列表 |

### detail-->goods\_detail 说明

| 字段                  | 是否必选 | 字段类型   | 字段说明          |
| ------------------- | ---- | ------ | ------------- |
| `merchant_goods_id` | 是    | String | 商户侧商品编码       |
| `wxpay_goods_id`    | 否    | String | 微信支付定义的统一商品编号 |
| `goods_name`        | 否    | String | 商品的实际名称       |
| `quantity`          | 是    | String | 用户购买的数量       |
| `unit_price`        | 是    | String | 商品单价（分）       |

示例：

```json theme={null}
{
  "merchant_code": "1430100846312",
  "subject": "1",
  "sign": "A50D3E38227F551463D9D0755C4E33SS",
  "description": "test",
  "body": "测试",
  "extra": "{\"auth_code\":\"131486163866088528\"}",
  "client_ip": "192.168.1.1",
  "app_id": "1842479404031148032",
  "sign_type": "MD5",
  "store_code": "",
  "amount": 2000,
  "out_trade_no": "20251210091746379380661",
  "detail": {
    "invoice_id": "1231231233",
    "cost_price": 2000,
    "goods_detail": [
      {
        "wxpay_goods_id": "6907992636306",
        "goods_name": "欣活纵糖奶粉(听装)800g",
        "quantity": 1,
        "merchant_goods_id": "6907992636306",
        "unit_price": 1999
      }
    ]
  }
}
```

## 支付 支付宝 goods\_detail 说明

| 字段                | 是否必选 | 字段类型   | 字段说明           |
| ----------------- | ---- | ------ | -------------- |
| `goods_id`        | 是    | String | 商品的编号          |
| `goods_name`      | 是    | String | 商品名称           |
| `quantity`        | 是    | String | 商品数量           |
| `price`           | 是    | String | 商品单价（元）        |
| `out_item_id`     | 否    | String | 商家侧小程序商品ID     |
| `out_sku_id`      | 否    | String | 商家侧小程序商品sku ID |
| `alipay_goods_id` | 否    | String | 支付宝商品统一编号      |
| `goods_category`  | 否    | String | 商品类目           |
| `categories_tree` | 否    | String | 商品类目树          |
| `body`            | 否    | String | 商品描述           |
| `show_url`        | 否    | String | 商品展示地址         |

示例：

```json theme={null}
{
  "merchant_code": "1350100546109",
  "subject": "1",
  "sign": "56967C1CD8EEF2E4911464743B7765bb",
  "description": "test",
  "body": "测试",
  "extra": "{\"auth_code\":\"280702853407545046\"}",
  "client_ip": "192.168.1.1",
  "app_id": "1525035832283496448",
  "sign_type": "MD5",
  "store_code": "",
  "amount": 300,
  "out_trade_no": "20251210115041920980201",
  "goods_detail": [
    {
      "goods_name": "ipad",
      "alipay_goods_id": "1",
      "quantity": 1,
      "price": "1.0",
      "goods_id": "apple-01",
      "goods_category": "34543238",
      "categories_tree": "124868003|126232002|126252004",
      "body": "特价手机",
      "show_url": "http://www.alipay.com/xxx.jpg"
    }
  ]
}
```

## 合单支付参数说明

如果使用了合单支付，订单查询只能通过子订单号查询，退款也只能通过子订单号分开退款。

| 字段                  | 是否必选 | 字段类型   | 字段说明     |
| ------------------- | ---- | ------ | -------- |
| `sub_merchant_code` | 是    | String | 合单支付商户号  |
| `sub_out_order_no`  | 是    | String | 子订单号     |
| `amount`            | 是    | String | 子订单金额（分） |
| `remark`            | 否    | String | 备注       |
| `goods_desc`        | 否    | String | 商品描述     |

## 小程序跳转易生小程序支付

需要先调预下单接口获取下单地址。

```js theme={null}
const urlString = decodeURIComponent(url)
const paramsStartIndex = urlString.indexOf('params=');
const paramsString = urlString.slice(paramsStartIndex + 7);
const params = JSON.parse(paramsString);
const path = `pages/index/index?payExpireTime=${params.payExpireTime}&payToken=${params.payToken}&orgTrace=${res.tradeId}`
wx.openEmbeddedMiniProgram({
    appId: 'wxed5226e9688ec728',
    path,
    success() {},
    fail() {}
})
```

## 安卓 APP 跳转易生小程序支付

```java theme={null}
String appId = "wxf3fc08b788503645";
IWXAPI api = WXAPIFactory.createWXAPI(getActivity(), appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_eb36dfa81e82";
req.path = "pages/index/index?payExpireTime=1749540943&payToken=emlRTMeqJpsL80Toc6FD&orgTrace=2025061015254334956045940025";
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;
api.sendReq(req);
```
