支付即开票(反扫)
API说明:完成支付(反扫)并开票,后续同样的报文再次调用即可获取支付及开票结果
调用方式:HTTP协议
API编码:shdzfp.zfkpfs
调用方法:POST
数据格式:json
请求报文规范
{
"ywlsh": "业务流水号",
"ywms": "业务模式",
"fpkj": {
"ywlx": "业务类型",
"fppz": "发票票种",
"tdys": "特定要素",
"ghf_nsrsbh": "购买方统一社会信用代码/纳税人识别号/身份证件号码",
"ghfmc": "购买方名称",
"ghf_dz": "购买方地址",
"ghf_dh": "购买方电话",
"ghf_khh": "购买方开户行",
"ghf_zh": "购买方银行账号",
"ghf_email": "购买方邮箱",
"ghf_sj": "购买方手机号码",
"ghfzrrbz": "购买方自然人标志",
"kpdbm": "开票点编码",
"byzd1": "备用字段1",
"byzd2": "备用字段2",
"byzd3": "备用字段3",
"byzd4": "备用字段4",
"byzd5": "备用字段5",
"zfewmid": "二维码id",
"details":[](订单明细,根据业务类型区分)
},
"zfxx": {
"qqsj": "请求时间",
"jyje": "交易金额",
"jyjzq": "交易截止期",
"bz": "备注",
"goodsDesc": "商品描述信息",
"authCode": "支付授权码",
"payScene": "场景类型",
"qrCodeId":"二维码id ",
"wxData": {
"subAppid": "微信appid"
},
"alipayData": {
"alipayStoreId": "支付宝的店铺编号"
},
"unionpayData": {
"pnrInsIdCd": "服务商机构标识码",
"termId": "终端号"
},
"riskCheckDataDTO": {
"ipAddr": "172.28.52.52",
"baseStation": "460001039217563",
"latitude": "+37.12",
"longitude": "-121.213",
},
"terminalDeviceInfoDTO": {
"deviceType": "1",
"deviceIp": "10.10.0.1",
"deviceMac": "F0E1D2C3B4A5",
"deviceImei": "460030912121001",
"deviceImsi": "460030912121001",
"deviceIccId": "898600680113F0123014",
"deviceWifiMac": "968778695A4B",
"deviceGps": "20.346790,-4.654321",
"appVersion": "3.2.5",
"encryptRandNum": "127026",
"iccId": "898600680113F0123014",
"location": "+37.12/-121.213",
"merDeviceIp": "10.10.0.1",
"merDeviceType": "11",
"mobileCountryCd": "460",
"mobileNetNum": "00",
"networkLicense": "P3100",
"secretText": "MkQ2MTVEQkY=\n",
"serialNum": "00000304N7NL01933217"
}
}
}
字段说明
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| ywlsh | 业务流水号 | varchar | 50 | 是 | 唯一,和外层报文“qqlsh”一致 |
| ywms | 业务模式 | varchar | 1 | 否 | 0:支付即开票 1:仅支付 |
fpkj(发票开具信息)
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| ywlx | 业务类型 | varchar | 4 | 否 | 传空默认为普通数电发票,见业务类型说明 |
| fppz | 发票票种 | varchar | 2 | 是 | |
| tdys | 特定要素 | varchar | 2 | 否 | 详见特定要素代码说明 |
| ghf_nsrsbh | 购买方统一社会信用代码/纳税人识别号/身份证件号码 | varchar | 50 | 否 | gmfzrrbz 是N 时必填 |
| ghfmc | 购买方名称 | varchar | 100 | 是 | |
| ghf_dz | 购买方地址 | varchar | 100 | 否 | |
| ghf_dh | 购买方电话 | varchar | 20 | 否 | |
| ghf_khh | 购买方开户行 | varchar | 80 | 否 | |
| ghf_zh | 购买方银行账号 | varchar | 20 | 否 | |
| ghf_email | 购买方邮箱 | varchar | 100 | 否 | |
| ghf_sj | 购买方手机号码 | varchar | 20 | 否 | |
| ghfzrrbz | 购买方自然人标志 | varchar | 1 | 是 | Y:是 N:否 |
| kpdbm | 开票点编码 | varchar | 20 | 否 | |
| byzd1 | 开票备注 | varchar | 200 | 否 | |
| byzd2 | 备用字段2 | varchar | 200 | 否 | |
| byzd3 | 备用字段3 | varchar | 200 | 否 | |
| byzd4 | 备用字段4 | varchar | 200 | 否 | |
| byzd5 | 备用字段5 | varchar | 200 | 否 | |
| zfewmid | 二维码id | varchar | 100 | 否 | 传该值时,特定要素信息从配置中获取 |
| details | 订单明细,根据业务类型区分 | varchar | 见业务类型说明 |
zfxx(支付信息)
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| qqsj | 请求时间 | varchar | 是 | yyyy-MM-dd HH:mm:ss | |
| jyje | 交易金额 | varchar | 是 | 单位元,需保留小数点后两位,示例值:1000.00,最低传入0.01 | |
| jyjzq | 交易截止期 | varchar | 否 | yyyy-MM-dd HH:mm:ss,该笔订单允许付款最晚时间,建议大于1分钟;注意:微信、支付宝交易有订单超时时间,默认两小时关单; | |
| bz | 备注 | varchar | 255 | 否 | 交易后原样返回,示例值:备注 |
| goodsDesc | 商品描述信息 | varchar | 200 | 否 | |
| authCode | 支付授权码 | varchar | 128 | 是 | 扫码设备读出的条形码或者二维码信息;示例值:2884138408701518074 |
| payScene | 场景类型 | varchar | 2 | 1:线下 2:线上,不填默认线下 | |
| qrCodeId | 二维码id | varchar | 200 | 否 | 二维码id |
wxData(微信参数集合)
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| subAppid | 子商户公众账号id | varchar | 32 | 否 | 微信分配的子商户公众账号id,微信js/小程序支付必传。如需在支付完成后获取subOpenid则此参数必传。示例值:wxec280d4c8a1cc2ca |
alipayData(支付宝参数集合)
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| alipayStoreId | 支付宝的店铺编号 | varchar | 32 | 否 | 示例值:20880414938706770156 |
unionpayData(银联参数集合)
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| pnrInsIdCd | 服务商机构标识码 | varchar | 11 | 否 | 银联分配的服务商机构标识码;示例值:01008330 |
| termId | 终端号 | varchar | 8 | 否 | 终端号;示例值:58000001 |
riskCheckDataDTO安全信息
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| ipAddr | ip地址 | varchar | 32 | IP地址、经纬度、基站地址最少要送其中一项;示例值:192.68.34.22 | |
| baseStation | 基站地址 | varchar | 32 | IP地址、经纬度、基站地址最少要送其中一项; 【mcc】+【mnc】+【location_cd】+【lbs_num】 - mcc:移动国家代码,460代表中国;3位长 - mnc:移动网络号码;2位长; - location_cd:位置区域码,16进制,5位长 - lbs_num:基站编号,16进制,5位长 - 注意若位数不足用空格补足; 示例值:460001039217563,460(mcc),00(mnc),10392(location_cd),17563(lbs_num) | |
| latitude | 纬度 | varchar | 32 | 纬度整数位不超过2位,小数位不超过6位;格式:+表示北纬,-表示南纬。示例值:+37.12;IP地址、经纬度、基站地址最少要送其中一项 | |
| longitude | 经度 | varchar | 32 | 经度整数位不超过3位,小数位不超过5位;格式:+表示东经,-表示西经。示例值:-121.213;IP地址、经纬度、基站地址最少要送其中一项 |
terminalDeviceInfoDTO设备信息
| 据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| deviceType | 设备类型 | varchar | 2 | 1:手机,2:平板,3:手表,4:PC;示例值:1 | |
| deviceIp | 交易设备IP | varchar | 64 | 用于标识交易设备IP地址,绑卡设备所在的公网IP,可用于定位所属地区,不是wifi连接时的局域网IP。示例值:10.10.0.1(IPv4);目前暂传IPv4格式。ABCD:EF01:2345:6789:ABCD:EF01:2345:6789(IPv6); | |
| deviceMac | 交易设备MA | varchar | 64 | 示例值:F0E1D2C3B4A5 | |
| deviceImei | 交易设备IMEI | varchar | 64 | 移动终端设备的唯一标识;示例值:460030912121001 | |
| deviceImsi | 交易设备IMSI | varchar | 64 | 示例值:460030912121001 | |
| deviceIccId | 交易设备ICCID | varchar | 64 | 示例值:898600680113F0123014 | |
| deviceWifiMac | 交易设备WIFIMAC | varchar | 64 | 示例值:968778695A4B | |
| deviceGps | 交易设备GPS | varchar | 64 | 示例值:20.346790,-4.654321 | |
| appVersion | 商户终端应用程序版 | varchar | 8 | 终端应用程序的版本号。应用程序变更应保证版本号不重复;示例值:3.2.5 | |
| encryptRandNum | 加密随机因子 | varchar | 10 | 仅在被扫支付类交易报文中出现:若付款码为19位数字,则取后6位;若付款码为EMV二维码,则取其tag57的卡号/token号的后6位;示例值:127026 | |
| iccId | SIM 卡卡号 | varchar | 20 | ICCID,SIM 卡卡号;示例值:898600680113F0123014 | |
| location | 商户终端实时经纬度信息 | varchar | 32 | 受理终端设备实时经纬度信息,银联云闪付交易必填格式为纬度/经度,+表示北纬、东经,-表示南纬、西经。示例值:+37.12/-121.213;经度整数位不超过3位,小数位不超过5位;纬度整数位不超过2位,小数位不超过6位。注:银联AT交易时,location和merDeviceIP二选一必填其一 | |
| merDeviceIp | 商户交易设备IP | varchar | 64 | 示例值:10.10.0.1; 注:银联AT交易时,location和merDeviceIP二选一必填其一 |
|
| merDeviceType | 商户设备类型 | varchar | 2 | 01:自动柜员机(含ATM和CDM)和多媒体自助终端,02:传统POS,03:mPOS, 04:智能 POS,05:II 型固定电话,06:云闪付终端, 08:手机POS,09:刷脸付终端,10:条码支付受理终端, 11:条码支付辅助受理终端(如:台牌码), 12:行业终端(公交、地铁用于指 定行业的终端),13:MIS 终端;<示例值:11 |
|
| mobileCountryCd | 移动国家代码 | varchar | 3 | 基站信息,由国际电联(ITU)统一分配的移动国家代码(MCC),中国为 460(默认);示例值:460 | |
| mobileNetNum | 移动网络号码 | varchar | 2 | 由国际电联(ITU)统一分配的移动网络号码(MNC)。移动:00、02、04、07; 联通:01、06、09; 电信:03、05、11;示例值:00 | |
| networkLicense | 商户终端入网认证编号 | varchar | 5 | 银行卡受理终端产品入网认证编号。格式:5 位字符,示例值:P3100;该编号由“中国银联标识产品企业资质认证办公室”为通过入网认证的终端进行分配; | |
| secretText | 密文数据 | varchar | 16 | 仅在被扫支付类交易报文中出现:64bit的密文数据,对终端硬件序列号和加密随机因子加密后的结果。本子域取值为:64bit密文数据进行base64编码后的结果。反扫辅助类设备可以为空;示例值:MkQ2MTVEQkY=\n | |
| serialNum | 商户终端序列号 | varchar | 50 | 终端设备的硬件序列号;示例值:00000304N7NL01933217 |
返回报文规范
{
"ywlsh":"业务流水号"
"zfjg":{
"jyzt": "P",
"sbyy": "下单成功",
"qqsj": "2025-05-07 16:00:00",
"jylx": "T_MICROPAY",
"jyje": "1.00",
"jsje": "1.00",
"zfsj": "2025-05-07 16:01:00",
"bz": "支付备注",
"zdlx": "01",
"payMsgWxDataVO": {
"openid": "微信openid",
"subOpenid": "用户在子商户appid下的唯一标识",
"cashFee": "1.00",
"bankType": "ICBC_DEBIT"
},
"payMsgAlipayDataVO": {
"buyerId": "买家的支付宝唯一用户号",
"buyerLogonId": "买家支付宝账号"
},
"payMsgUnionpayDataVO": {
"accNo": "付款方的卡号/账号/Token"
},
"merDevLocationVO": {
"terminalIp": "192.168.0.0",
"terminalLocation": "+37.12/-121.213"
}
},
"fpjg":{
"returnCode":"返回代码",
"returnMsg":"返回信息",
"url":"板式文件链接",
"fphm":"发票号码",
"fpdm":"发票代码",
"kprq":"开票日期",
"jshj":"价税合计",
"hjje":"合计金额",
"hjse":"合计税额",
"xsfmc":"销售方名称",
"xsf_nsrsbh":"销售方纳税人识别号",
"ghfmc":"购买方名称",
"ghf_nsrsbh":"购买方纳税人识别号",
}
}
字段说明
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| ywlsh | 业务流水号 | varchar | 50 | 是 |
zfjg(支付结果)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| jyzt | 交易状态 | varchar | 1 | P:处理中、S:成功、F:失败;交易状态以此字段为准 | |
| sbyy | 失败原因 | varchar | 512 | 交易失败描述 | |
| qqsj | 请求时间 | varchar | 交易时传入,原样返回 | ||
| jylx | 交易类型 | varchar | 16 | T_MICROPAY: 微信反扫 A_MICROPAY: 支付宝反扫 U_MICROPAY: 银联反扫 |
|
| jyje | 交易金额 | varchar | |||
| jsje | 结算金额 | varchar | 单位元, 示例值:1.00 | ||
| zfsj | 支付时间 | varchar | 19 | yyyy-MM-dd HH:mm:ss | |
| bz | 备注 | varchar | 255 | 原样返回 | |
| zdlx | 终端类型 | varchar | 2 | 01-智能POS 02-扫码POS 03-云音箱 04-台牌 05-云打印 06-扫脸设备 07-收银机 08-收银助手 09-传统POS 10-一体音箱 11-虚拟终端 示例值:01 |
fpjg(发票结果)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| returnCode | 返回代码 | varchar | 4 | 是 | 0000:开票成功 0001:开票中 0002:开票失败 |
| returnMsg | 返回信息 | varchar | 500 | 否 | 开票失败原因 |
| url | 发票文件链接 | varchar | 500 | 否 | returnCode为0000时返回 |
| fphm | 发票号码 | varchar | 20 | 否 | returnCode为0000时返回 |
| fpdm | 发票代码 | varchar | 12 | 否 | |
| kprq | 开票日期 | varchar | 14 | 否 | yyyyMMddHHmmss |
| jshj | 价税合计 | varchar | 否 | 价税合计 | |
| hjje | 合计金额 | varchar | 否 | 合计不含税金额 | |
| hjse | 合计税额 | varchar | 否 | 合计税额 | |
| xsfmc | 销售方名称 | varchar | 300 | 否 | |
| xsf_nsrsbh | 销售方纳税人识别号 | varchar | 50 | 否 | |
| ghfmc | 购买方名称 | varchar | 300 | 否 | |
| ghf_nsrsbh | 购买方纳税人识别号 | varchar | 50 | 否 |