ydp_pay_admin.md
旧文件/ydp_pay_admin.md · 6.8 KB · 2026-09-22 15:07:00
原始文件 下载

YDP 管理后台对接文档

面向管理后台前端。C 端充值见 YDP 充值前端对接文档

协议约定与现有后台相同:POST、管理员登录态、snake_case、枚举可传数字或字符串名。

YDP 接入复用现有「充值渠道管理」「提现银行管理」「提现列表/导出/自动下发」,没有单独一套 YDP 配置页。 需要做的是:下拉框补枚举、列表能展示/筛选 YDP、运营能启停和改限额。

种子数据默认全部禁用。没打开之前,C 端看不到 YDP 充值,提现列表也不会出现 YDP 导出项。

1. 新增枚举

用在 枚举 数字值 含义
充值渠道 pay_type PAY_TYPE_YDP 20 YDP 充值
提现银行渠道 channel_type TYPE_YDP 5 YDP 代付映射
提现导出/自动下发 pay_platform PAY_PLATFORM_YDP 7 YDP 打款

所有出现 Jaya / EasyPay 的下拉,都要加上 YDP。响应可能是数字或字符串名,两种都认。

const PAY_TYPE_YDP = 20;
const CHANNEL_TYPE_YDP = 5;
const PAY_PLATFORM_YDP = 7;

function isYdpPayType(v: string | number) {
  return v === 20 || v === "PAY_TYPE_YDP";
}
function isYdpChannelType(v: string | number) {
  return v === 5 || v === "TYPE_YDP";
}
function isYdpPayPlatform(v: string | number) {
  return v === 7 || v === "PAY_PLATFORM_YDP";
}

2. 充值渠道

接口与现有充值渠道页相同,只是 pay_type 多了 20

操作 接口
列表 POST /v1/man/deposit/channel/list
新增 POST /v1/man/deposit/channel/create
更新 POST /v1/man/deposit/channel/update
删除 POST /v1/man/deposit/channel/delete

筛 YDP:

{ "offset": 0, "limit": 50, "pay_type": 20 }

迁移已写入 3 条(is_disabled = true):

name display_name params min_amount max_amount sort
ydp-qris YDP QRIS {"payment":"ydidnqris"} 10000 50000000 40
ydp-dana YDP DANA {"payment":"ydidndana"} 10000 50000000 39
ydp-va YDP VA {"payment":"ydidnva"} 10000 50000000 38

2.1 打开某条充值渠道

UpdateDepositChannelis_disabled 改为 false。C 端列表立刻能看到;关掉则 C 端消失,且 ydp/create 会被服务端拒绝。

限额 min_amount / max_amount 单位是 IDR0 表示不限。改限额后,C 端列表和下单都会按新限额拦截。

2.2 params(必填)

YDP 只用 payment,不要套 Jaya 的 method 或 Unispay 的 pay_type

允许值(大小写不敏感,建议小写):

{
  "id": 123,
  "name": "ydp-qris",
  "display_name": "YDP QRIS",
  "pay_type": 20,
  "params": { "payment": "ydidnqris" },
  "min_amount": 10000,
  "max_amount": 50000000,
  "sort": 40,
  "is_disabled": false
}

display_name 是 C 端按钮文案。name 仅后台识别。

不要新增第四种 payment:服务端白名单只认上面三个,C 端下单会失败。三条渠道的 payment 也不要互相改乱(例如 QRIS 渠道改成 ydidndana)。

3. 提现银行映射

用户绑卡名单仍是 Jaya 主表,后台不需要给用户端加「YDP 银行」。要做的是:在已有银行上打开 YDP 渠道映射。

操作 接口
主表(含各渠道映射) POST /v1/man/withdraw/bank/list
渠道映射列表 POST /v1/man/withdraw/bank/channel/list
更新一条映射 POST /v1/man/withdraw/bank/channel/update
按银行整表设置 POST /v1/man/withdraw/bank/channel/set

筛 YDP 映射:

{ "offset": 0, "limit": 500, "channel_type": 5 }

WithdrawBankChannel 字段:

字段 说明
channel_type YDP = 5
code YDP 代付银行码(如 BCA=014,DANA=10002
bank_id 主表银行 id;0 = 未映射,无法用来打款
is_disabled true 时该银行不能走 YDP
min_amount / max_amount 单笔 IDR;影响提现列表能否出现 YDP 导出项

迁移已 seed 约 112 条 YDP 映射,默认全禁用。与 Jaya 同名的银行一般已带 bank_id;YDP 独有、主表没有的银行 bank_id = 0,要先绑到主表再启用。

3.1 打开某银行的 YDP 代付

对目标映射 UpdateWithdrawBankChannel

{
  "id": 456,
  "channel_type": 5,
  "code": "014",
  "bank_id": 2,
  "is_disabled": false,
  "min_amount": 10000,
  "max_amount": 300000000
}

code 必须是 YDP 文档里的代付银行码,不要填 Jaya/EasyPay 的码。

主表银行 is_disabled 只影响用户能不能绑这个名字;YDP 能否打款看的是 YDP 渠道行is_disabledbank_id

4. 提现列表 / 导出 / 自动下发

现有提现页即可,补上平台 7

4.1 列表

POST /v1/man/withdrawal/list

每条提现的 export_types 会包含当前能走的平台。银行映射已启用、金额在 YDP 限额内时,会出现 7 / PAY_PLATFORM_YDP

按钮展示建议:export_types 含 YDP 才显示「YDP 导出 / YDP 自动下发」。

也可用请求里的 export_type = 7 筛「可走 YDP 的单」。

4.2 批量导出

POST /v1/man/withdrawal/batch/export

{ "no": ["W1", "W2"], "type": 7 }

导出 Excel 列为 YDP 代付字段(merchant_order_id / amount / payment / method / to / bankcode 等),与 Jaya 表头不同,不要复用 Jaya 解析。

payment 列由服务端按卡类型填写(银行卡 ydidnqris,钱包 ydidndana),后台不用再配。

4.3 自动下发

POST /v1/man/auto/withdraw

{
  "pay_platform": 7,
  "audit_infos": [{ "id": 10001, "comment": "YDP" }]
}

id 是提现单 数字 id,不是单号。pay_platform 必须是 7

成功后状态变为处理中;到账靠 YDP 回调或下面的刷新。

4.4 刷新状态

POST /v1/man/withdraw/refresh

{ "ids": [10001] }

对 YDP 处理中的单会去查 YDP,终态则更新为已到账或失败。

5. 后台 UI 改动清单

  1. 充值渠道:pay_type 下拉增加 YDP (20)params 编辑支持 payment
  2. 提现银行渠道:channel_type 下拉增加 YDP (5);列表能按 5 筛选。
  3. 提现列表:export_types / 导出类型 / 自动下发平台增加 YDP (7)
  4. 打开 YDP 前确认映射 bank_id > 0code 正确。
  5. 商户号、密钥、base_url 在服务端 yaml,不在后台页面配。没配时自动下发会失败,页面可提示「YDP 未开通」。

6. 不要做的事