Explorar o código

docs(汇安融): 开放文档 10.2 补 province_code / city_code —— 地区格式按接收口径逐字写清

用户点名要求:文档里的地区格式必须和我们实际接收的完全一致,填错格式就挑不到门店。

- 10.2 请求表加两行(选填,与 10.1 建店 GB/T 2260 同一套码表)+挑店说明块:
  代码不是地名、市码必须属于省码、同市优先/回退全省、挑中回显 third_shop_code、
  同地区多店按 out_biz_no 稳定散列、挑不出来 400 拒收
- 400 文案逐字写死(全部是测试里钉过的同一批字符串):
  省份编码不存在: 99 | 城市编码不属于该省: 3301(省 32)|
  省份编码不能为空: 传了 city_code 就必须一并传 province_code |
  该地区没有可用门店: 省 32(带市码时为 该地区没有可用门店: 3201(省 32))
- 响应表 third_shop_code 语义订正:按地区挑店时是「挑中的那家」,不再一律「原样返回」
- 章首「门店与下单的关系」补一句指向 10.2
alphaH hai 6 días
pai
achega
fcf026c75d
Modificáronse 1 ficheiros con 12 adicións e 2 borrados
  1. 12 2
      frontend/src/views/module_payment/apikey/docs/har-openapi.md

+ 12 - 2
frontend/src/views/module_payment/apikey/docs/har-openapi.md

@@ -30,7 +30,7 @@
 
 **门店与下单的关系**:10.2 里的 `shop_code` / `third_shop_code` 都是**选填**。门店不是下单的前置条件 —— 只有需要把交易归属到某个具体门店时才填。
 
-> **但门店的「地区」是有用的**:平台的收款链接(第 6 章的顾客付款页)下单时会按顾客 IP 的归属地自动挑一家同地区的门店,见 10.1 的地区说明。你的接口自己下单时若指定了门店,那个地区的风控判断同样适用。
+> **但门店的「地区」是有用的**:平台的收款链接(第 6 章的顾客付款页)下单时会按顾客 IP 的归属地自动挑一家同地区的门店,见 10.1 的地区说明。你的接口自己下单时若指定了门店,那个地区的风控判断同样适用;或者**不指定门店、改传顾客地区的编码**(`province_code` / `city_code`,2026-10-09 起),由平台在该地区替你挑一家 —— 见 10.2。
 
 ---
 
@@ -113,9 +113,19 @@ POST /payment/openapi/har/order/create
 | `percent` | string | 否 | 分期手续费承担方:`100` 商户承担 / `0` 用户承担。`trade_type=alipay_stage` 时必填 |
 | `shop_code` | string | 否 | 平台门店编号(10.1 返回的 `shop_id`) |
 | `third_shop_code` | string | 否 | 你方门店编码,≤32 字符 |
+| `province_code` | string | 否 | **不指定门店时**由平台按地区挑店:顾客所在省,GB/T 2260 两位码(`"32"` 江苏省、`"11"` 北京市),与 10.1 建店**同一套码**,见下 |
+| `city_code` | string | 否 | 顾客所在市,GB/T 2260 四位码(`"3201"` 南京市),必须属于 `province_code`;不传则按全省挑 |
 | `pay_timeout` | int | 否 | 支付过期时间,取值 2–60(单位由上游定义,平台原样透传) |
 | `extra_params` | string | 否 | 透传字段 |
 
+> **按地区自动挑店(2026-10-09 起,选填)**:不传 `shop_code` / `third_shop_code`、但传了 `province_code` 时,平台**替你在该地区挑一家门店**去发起交易,与平台的收款链接(第 6 章顾客付款页)同一套规则、同一个地区目录。
+>
+> - **格式**(照这个填,填错会挑不到门店):GB/T 2260 行政区划代码,与 10.1 建店**完全同一套** —— 省级两位、地级四位,传的是**代码不是地名**(写 `"32"`,写成 `"江苏省"` 会被拒);`city_code` 必须属于所传的 `province_code`。
+> - **怎么挑**:先在同市可用门店里挑;该市没有则回退到全省挑(不报错);同地区有多家时按 `out_biz_no` 稳定挑一家(同一 `out_biz_no` 重复调用落同一家)。
+> - **挑中哪家**:响应里的 `third_shop_code` 就是挑中的那家(本来该你传的字段,现在由平台回显)。
+> - **挑不出来会被拒收**(`code=400`,这单不会建立、不会扣款):码不认识 —— `省份编码不存在: 99` / `城市编码不属于该省: 3301(省 32)`;只传 `city_code` 没传 `province_code` —— `省份编码不能为空: 传了 city_code 就必须一并传 province_code`;该地区没有可用门店 —— `该地区没有可用门店: 省 32`(带市码时为 `该地区没有可用门店: 3201(省 32)`)。「可用门店」= 10.1 建号成功(`create_status=SUCCESS`)且地区与所传编码一致的门店;2026-10-08 之前建的门店没有地区,不会被挑中(见 10.1 的警告)。
+> - **传了任一门店编码时,这两个字段被忽略**(显式指定优先,平台不会用挑出来的店覆盖你指定的店)。
+
 **响应**(B 型,`data` 内)
 
 | 字段 | 说明 |
@@ -128,7 +138,7 @@ POST /payment/openapi/har/order/create
 | `trade_status` | 订单状态,见 10.6 |
 | `price` | 订单金额(元) |
 | `title` / `trade_type` / `stage_num` / `percent` | 原样返回 |
-| `shop_code` / `third_shop_code` | 原样返回 |
+| `shop_code` / `third_shop_code` | 你传的那个原样返回;按地区挑店时 `third_shop_code` 是**挑中的那家** |
 | `trade_time` | 支付成功时间 |
 | `rcv_amount` | 实收金额(元),支付成功后有值 |
 | `fee_amount` / `channel_amount` | 手续费 / 渠道金额 |