业务说明
本接口请求方为翼码系统,接收方为商家系统。
支持的支付交易类型:
4.3扫码支付、4.13jsapi支付、4.14微信小程序支付、4.21聚合动态码支付、4.34网银支付、4.65快捷支付申请、4.67快捷支付页面版、4.15银行卡刷卡下单、4.22小程序支付收银台下单
支持的退款交易类型:
4.5支付退款交易、4.38线上交易退款、4.17银行卡申请退款交易
退款结果通知仅支持部分通道
以上交易类型支付成功后,通知商户系统支付结果。
报文格式:JSON
请求方式:POST
Content-Type: application/json;charset=utf-8
商户接收到通知处理成功后需响应字符串“success”,其他响应翼码系统认为通知失败会继续通知。
同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。
解析与验签说明
重要提示:
该通知为标准接口,会根据业务需要增加请求节点,且部分请求节点是为兼容存量商户的冗余字段,增量商户无需关心,未在文档“请求报文说明”中展示!
因此解析报文和验签需按实际接口接收到的请求节点来处理,切勿以固定格式解析报文和验签,应避免未知请求节点引起的代码报错!
可空节点数据为空时,既可能返回null也可能返回空字符串,请解析时注意兼容!
签名sign计算规则详见:JSON格式签名计算。
请求报文
{
"notify_type": "1",
"isspid": "00026713",
"store_id": "S20220927",
"pos_seq": "C20220928X1000000015",
"source": "1",
"pos_id": "S20220927",
"pay_type": "503",
"trans_type": "1",
"memo": null,
"status": "1",
"tx_amt": "1",
"partner_id": "1503490901",
"end_time": "20220928144502",
"sub_appid": "wxa138a13aca591b95",
"buyer_id": "oXI_E5KN-FJi1Hf65mWeiBF8fUlU",
"mid": "",
"tid": "",
"batch_no": "",
"trace_no": "",
"ref_no": "",
"is_foreign_card": "",
"trade_no": "4200001546202209282282722088",
"buss_discount_amt": "0",
"platform_discount_amt": "0",
"charge_amount": "0",
"user_yima_id": "1111111111",
"atu_trade_no": "4200001546202209282282722088",
"atu_out_trade_no": "C20220928X1000000015",
"bank_code": "",
"fund_freeze_stat": "",
"sign": "7A6B20F1AC3F18FBFC56F4A36CE3207F"
}
请求报文说明
标准接口会因业务升级需要而新增节点,请在解析请求报文时避免新增未知节点产生的程序出错!
节点名称 | 中文名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
sign | 签名 | String(32) | 计算签名方式请看2.1章节 | 必填 |
notify_type | 通知类型 | String(1) | 1:交易结果通知 | 必填 |
isspid | 商户号 | String(8) | 交易的翼码商户号 | 必填 |
store_id | 门店号 | String(20) | 商户自定义的门店号 | 必填 |
pos_seq | 支付请求流水号 | String(32) | 请求支付类接口的流水号(pos_seq) | 必填 |
org_pos_seq | 原交易流水号 | String(32) | 原支付订单的请求流水号(pos_seq) 仅退款类型有值 | 可空 |
source | 订单来源 | String(1) | 1:接口接入 2:收款码牌 | 必填 |
pos_id | 终端号 | String(20) | source=1时,商户自定义终端号 source=2时,收款码编号 | 必填 |
pay_type | 支付方式 | String(3) | 502:支付宝 503:微信支付 515:微信小程序 512:银联二维码 516:数字人民币 517:网银支付 518:快捷支付 521:聚分期 620:银行卡刷卡 | 必填 |
trans_type | 交易类型 | String(1) | 1:支付 2:退款(仅支持部分通道) | 必填 |
memo | 订单备注 | String(128) | 可空 | |
status | 交易状态 | String(1) | 1:成功 0:失败 | 必填 |
tx_amt | 交易金额 | Number(9) | 单位为分 | 必填 |
partner_id | 商户收款帐号 | String(64) | 支付宝PID/微信商户号/间联通道商户号 | 可空 |
end_time | 交易完成时间 | String(14) | 格式:YYYYMMDDHH24MISS | 可空 |
sub_appid | 子商户应用ID | String(32) | 微信的APPID | 可空 |
buyer_id | 买家标识 | String(128) | 支付宝:用户登录帐号(带星号脱敏) 微信/微信小程序:用户open_id 银联二维码:银行卡号(带星号脱敏) 网银支付:银行卡号(带星号脱敏) 快捷支付:银行卡号(带星号脱敏) 银行卡刷卡:银行卡号(带星号脱敏) 该字段是否有值取决于支付通道是否返回 | 可空 |
mid | 银联商户号 | String(64) | 仅银行卡刷卡类型(pay_type=620),成功时有值 | 可空 |
tid | 银联设备号 | String(8) | 仅银行卡刷卡类型(pay_type=620),成功时有值 | 可空 |
batch_no | 银联批次号 | String(20) | 仅银行卡刷卡类型(pay_type=620),成功时有值 | 可空 |
trace_no | 银联流水号 | String(20) | 仅银行卡刷卡类型(pay_type=620),成功时有值 | 可空 |
ref_no | 银联交易参考号 | String(20) | 仅银行卡刷卡类型(pay_type=620),成功时有值 | 可空 |
is_foreign_card | 外卡标识 | String(1) | 0:不是外卡 1:是外卡 仅银行卡刷卡类型(pay_type=620),成功时有值 | 可空 |
trade_no | 支付平台订单号 | String(64) | 支付平台的订单号,仅成功时有值 | 可空 |
buss_discount_amt | 商家优惠金额 | Number(9) | 单位为分,仅成功时有值 | 可空 |
platform_discount_amt | 平台优惠金额 | Number(9) | 单位为分,仅成功时有值 | 可空 |
charge_amount | 手续费 | Number(9) | 单位为分,仅成功时有值 | 可空 |
user_yima_id | 用户号 | String(32) | 仅快捷支付(pay_type=518),成功时有值 | 可空 |
atu_trade_no | ATU订单号 | String(64) | 支付宝/微信/银联订单号 客户手机支付凭证上的订单号 | 可空 |
atu_out_trade_no | ATU商户订单号 | String(64) | 支付宝/微信/银联商户订单号 客户手机支付凭证上的商户订单号 | 可空 |
bank_code | 发卡行编码 | String(20) | 该字段是否有值取决于支付通道是否返回 | 可空 |
fund_freeze_stat | 资金冻结状态 | String(2) | 01:冻结 02:解冻 空表示无此类业务 | 可空 |
标准接口会因业务升级需要而新增节点,请在解析请求报文时避免新增未知节点产生的程序出错!
返回报文
success
返回报文说明
固定字符串“success”表示接收处理成功,其他表示失败。