支付即开票(正扫)
API说明:完成支付(正扫)并开票,后续同样的报文再次调用即可获取支付及开票结果
调用方式:HTTP协议
API编码:shdzfp.zfkp
调用方法: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": "请求时间",
"jylx": "交易类型",
"jyje": "交易金额",
"jyjzq": "交易截止期",
"bz": "备注",
"goodsTitle": "商品标题",
"goodsDesc": "商品描述信息",
"qrCodeId": "二维码id ",
"wxData": {
"subOpenid": "公众号和小程序场景必填。用户在子商户sub_appid下的唯一标识。下单前需获取到用户的sub_openid,sub_openid获取详见微信文档openid获取。"
},
"alipayData": {
"buyerId": "买家的支付宝唯一用户号,交易类型为A_JSAPI: 支付宝JS时必填"
},
"unionpayData": {
"qrCode": "台牌码的url,交易类型为U_JSAPI:银联JS时必填",
"customerIp": "持卡人确认付款时的ip地址,用于防钓鱼。"
},
"acctSplitBunchDTO": {
"acctInfoDTOS": [
{
"divAmount": "0.01",
"taxcode": "分账税号",
"acctId": "账户号,备用字段",
"percentageDiv": "100"
}
],
"percentageFlag": "N",
"cleanSplitType": "Y"
},
"combinedPaymentDTO": {
"taxcode": "补贴方税号",
"userType": "agent",
"acctId": "营销补贴方账户号,备用字段",
"amount": "补贴金额"
}
}
}
字段说明
| 数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
|---|---|---|---|---|---|
| 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 | |
| jylx | 交易类型 | varchar | 16 | 是 | T_JSAPI: 微信公众号支付 T_MINIAPP: 微信小程序支付 A_JSAPI: 支付宝JS A_NATIVE: 支付宝正扫 U_NATIVE: 银联正扫 U_JSAPI: 银联 JS T_MICROPAY: 微信反扫 A_MICROPAY: 支付宝反扫 U_MICROPAY: 银联反扫 D_NATIVE: 数字人民币正扫 D_MICROPAY: 数字人民币反扫 |
| jyje | 交易金额 | varchar | 是 | 单位元,需保留小数点后两位,示例值:1000.00,最低传入0.01 | |
| jyjzq | 交易截止期 | varchar | 否 | yyyy-MM-dd HH:mm:ss,该笔订单允许付款最晚时间,建议大于1分钟;注意:微信、支付宝交易有订单超时时间,默认两小时关单; | |
| bz | 备注 | varchar | 255 | 否 | 交易后原样返回,示例值:备注 |
| goodsTitle | 商品标题 | varchar | 100 | 否 | |
| goodsDesc | 商品描述信息 | varchar | 200 | 否 | |
| qrCodeId | 二维码id | varchar | 200 | 否 | 二维码id |
wxData(微信参数集合)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| subOpenid | 用户在子商户sub_appid下的唯一标识 | varchar | 100 | 否 | 公众号和小程序场景必填。用户在子商户sub_appid下的唯一标识。下单前需获取到用户的sub_openid,sub_openid获取详见微信文档openid获取 |
alipayData(支付宝参数集合)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| buyerId | 买家的支付宝唯一用户号 | varchar | 100 | 否 | 买家的支付宝唯一用户号,交易类型为A_JSAPI: 支付宝JS时必填 |
unionpayData(银联参数集合)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| qrCode | 台牌码的url | varchar | 300 | 否 | 台牌码的url,交易类型为U_JSAPI:银联JS时必填 |
| customerIp | 持卡人确认付款时的ip地址 | varchar | 50 | 否 | 持卡人确认付款时的ip地址,用于防钓鱼 |
acctSplitBunchDTO(分账对象)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| percentageFlag | 百分比分账标志 | varchar | 1 | 是 | Y:使用百分比分账 |
| cleanSplitType | 净值分账标志 | varchar | 1 | 否 | Y:使用净值分账,仅在交易手续费内扣且使用百分比分账时起作用 |
acctInfoDTOS(分账明细)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| divAmount | 分账金额 | varchar | 14 | 是 | 单位元,需保留小数点后两位,示例值:1.00 ,最低传入0.01 |
| taxcode | 分账税号 | varchar | 50 | 是 | 分账税号 |
| acctId | 账户号 | varchar | 9 | 否 | 备用字段,可指定账户号,仅支持基本户、现金户,不填默认为基本户 |
| percentageDiv | 分账百分比% | varchar | 6 | 否 | 示例值:23.50,表示23.50%。仅在percentageFlag=Y时起作用,acctInfoDTOS中全部分账百分比之和必须为100.00% |
combinedPaymentDTO(补贴支付信息)
| 名称 | 类型 | 长度 | 必须 | 说明 | |
|---|---|---|---|---|---|
| taxcode | 补贴方税号 | varchar | 是 | ||
| userType | 补贴方类型 | varchar | 是 | agent-代理 | |
| acctId | 补贴方账户号 | varchar | 否 | 备用字段 | |
| amount | 补贴金额 | varchar | 是 | 单位元,需保留小数点后两位,例如:1.00,最低传入0.01; 示例值:1.01 |
返回报文规范
{
"ywlsh":"业务流水号"
"zfjg":{
"jyzt":"交易状态",
"sbyy": "失败原因",
"qqsj": "请求时间",
"jylx": "交易类型",
"jyje": "交易金额",
"payInfo": "API支付返回信息",
"qrCode": "二维码链接",
"bz": "备注"
},
"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_JSAPI: 微信公众号支付 T_MINIAPP: 微信小程序支付 A_JSAPI: 支付宝JS A_NATIVE: 支付宝正扫 U_NATIVE: 银联正扫 U_JSAPI: 银联 JS T_MICROPAY: 微信反扫 A_MICROPAY: 支付宝反扫 U_MICROPAY: 银联反扫 D_NATIVE: 数字人民币正扫 D_MICROPAY: 数字人民币反扫 |
|
| jyje | 交易金额 | varchar | |||
| payInfo | js支付信息 | varchar | 1024 | JS API支付返回信息 | |
| qrCode | 二维码链接 | varchar | 1024 | 支付返回二维码链接 | |
| bz | 备注 | varchar | 255 | 原样返回 |
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 | 否 |