请求方式:POST
Content-Type: text/plain
数据内容:payload
响应方式:http status=200接收成功;否则会延迟多次补发通知
payload数据为加密后的数据,请用GEP公钥解密,解密方法参考解密流程

接口地址

商户提供通知地址,找技术支持申请配置

明文参数

序号 域名 变量名 必填 长度 备注
01 类型 type M String 交易手续费 : trade_fee
3ds通知 : card_3ds_otp
交易结果通知 : card_transaction_v2
卡操作结果通知 : type_card_operate
02 数据报文 data M JsonObject 数据内容


交易手续费type = trade_fee

序号 域名 变量名 必填 长度 备注
01 卡唯一编号 cardId M String(128)
02 收费类型 opType M int 详见附录: 收费类型
03 收费凭证 receiptNo M String
04 交易ID recordNo M String
05 用户号 userNo M String
06 收费币种 realCcy M String 收费币种
07 收费金额 realFee M String 收费金额
08 时间 createAt M String yyyy-MM-dd HH :mm:ss


3ds通知 type = card_3ds_otp

序号 域名 变量名 必填 长度 备注
01 OTP验证码 otp M String OTP验证码
02 卡号唯一ID cardId M String 卡号唯一编号
03 卡号 cardNo M String 掩码展示
04 交易币种 transactionCurrency M String 交易币种
05 交易金额 transactionAmount M String 交易金额
06 商户名称 merchantName M String 商户名称


交易结果通知 type = card_transaction_v2

序号 域名 变量名 必填 长度 备注
1. 记录编号 recordNo String M 记录编号
2. 原记录编号 originRecordNo String O 原记录编号
3. 卡唯一编号 cardId String M 卡id
4. 交易发生时间 transTime String M 交易发生时间
5. 交易币种 transCurrency String M 交易币种
6. 交易币种金额 transCurrencyAmt Number M 交易币种金额
7. 卡本币种 localCurrency String M 卡币种
8. 卡本币种金额 localCurrencyAmt Number M 卡本币种交易金额
9. 授权码 approvalCode String O 授权码
10. 商户名称 merchantName String M 商户名称
11. 商户MCC merchantCategoryCode String O 商户MCC
12. 商户国家 merchantCountryCode String O 商户国家
13. 跨境类型 crossBoardType String O 0:境内 1:境外
14. 交易类型 commonTransType int M 1:消费 2:冲正 3:退款 4:清算差额 5:冲正后请款 7:强制清算
15. 交易状态 commonTransStatus int M 1:批准 2:拒绝 3:已清算
16. 交易响应码 commonRespCode String M 详见附录:交易响应码
17. 交易响应码描述 commonRespCodeDesc String M 详见附录:交易响应码
18. 资金类型 fundsType int M 0:常规卡 1:共享卡 2:账户
19. 资金方向 fundsDirection int M 0:扣款 1:退款
20. 清算金额 settleAmount Number C 清算金额(commonTransType=1或7,且commonTransStatus=3时才有值)
21. 清算时间 settleTime String O commonTransStatus=3时有值


卡操作结果通知 type = type_card_operate

序号 域名 变量名 必填 长度 备注
01. 服务系统返回的单号 orderId M String 订单唯一订单号
02. 卡编号 cardId O String 卡唯一编号
03. 卡组编号 groupId O String 卡组唯一编号
04. 请求流水号 userReqNo M String 客户上送的流水号
05. 订单类型 opType M int 0开卡 1充值 3销卡4退款
06. 订单状态 status M int 状态:2 成功 3失败
07. 状态描述 statusDesc M String 状态描述
08. 订单金额 amount M Number 金额,注意开附属卡时为限额(0不限);销卡时为销卡金额
09. 手续费 fee M Number 手续费,注意开卡时为合计费用
10. 卡信息 cardInfo O JSON opType=0且cardId不为空的时候存在
11. 创建时间 createAt M String 创建的时间,格式yyyy-MM-dd HH :mm:ss

cardInfo数据说明

序号 域名 变量名 必填 长度 备注
01. 卡号 cardNo M String 卡号
02. 卡安全验证码CVV(3位) cardVerifyNo M Number 卡安全验证码CVV(3位)
03. 卡别名 cardAlias O String 卡别名
04. 卡标签 cardLabel O String 卡标签
05. 卡有效期 cardExpiryDate M String 卡有效期(格式:03/2022)
06. 卡本币种 localCurrency M String 卡本币种
07. 卡生效日期 startActiveDate M String 卡生效日期
08. 最晚关卡日期 endCloseDate M String 最晚关卡日期

明文示例

{
  "data": {
    "amount": 98,
    "cardId": "2403282025000018833",
    "createAt": "2024-03-28 20:39:41",
    "fee": 0,
    "opType": 4,
    "orderId": "2403282039000201236",
    "status": 2,
    "statusDesc": "成功",
    "userReqNo": "W2024032820394010034"
  },
  "type": "type_card_operate"
}

👉常见交易流程

  1. 消费(拒绝)结束

  2. 消费(批准)

    • 消费(已清算·有 settleAmount) [无清算差额] → 结束
    • 消费(已清算·有 settleAmount) [有清算差额] → 清算差额(已清算)结束
  3. 退款(已清算)结束
    (退款一般发生在原交易清算之后,但大多数关联不到原交易单号)

  4. 消费(批准)冲正(批准)结束
    (已冲正的交易,原消费交易的状态不会再变为已清算)

  5. 消费(批准)冲正(批准)消费(已清算·有 settleAmount)冲正后请款(已清算)结束

  6. 强制清算(已清算·有 settleAmount)结束
    (强制清算是没有授权的直接清算的交易)

获取webhook数据

获取返回信息需获取请求中的流数据

  • JAVA示例:

    BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
    StringBuilder builder = new StringBuilder();
    String line;
    while ((line = reader.readLine()) != null) {
      builder.append(line);
    }
    String payload = builder.toString();
    // TODO  解密payload
  • PHP示例:

    $payload = file_get_contents('php://input');
    echo "webhook接收通知内容:".$payload;
    // TODO  解密$payload
作者:陈花枪  创建时间:2024-08-15 10:52
最后编辑:陈花枪  更新时间:2025-04-07 14:39