作废、红冲回调
## 说明
* 需要根据下面提供的回调参数格式开发接收接口地址,然后提供给对接人配置
### 回调参数格式
作废:
```json
{
"resultDto":{
"code":1,
"message":"作废",
"data":{
"erpOrderNos":[
"erp0710"
],
"partnerOrderNos":[
"order0710"
],
"invoiceEntrys":[
{
"remark":"",
"status":"0",
"details":[
{
"taxRate":"3",
"quantity":"1.000000",
"cargoName":"*住宿服务*住宿费",
"taxAmount":"3.23",
"unitPrice":"107.770000",
"quantityUnit":"",
"amountWithTax":"111",
"amountWithoutTax":"107.77"
}
],
"invoiceNo":"90918762",
"sellerTel":"12341312312",
"taxAmount":"3.23",
"cipherText":"032/501901+*260>1+/574<79868866*62<1-<7+/3+01<2/4702-715551952+<3/0<44/41/07+/87->56<*-67920/301764<037/*316*>5+",
"sellerName":"测试22",
"cashierName":"张果老",
"checkerName":"南极翁",
"invoiceCode":"1500031888",
"invoiceType":"s",
"sellerTaxNo":"11010120181016022",
"invoicerName":"铁头娃",
"purchaserTel":"187000000001",
"amountWithTax":"111.00",
"paperDrewDate":"20190828",
"purchaserName":"天问",
"sellerAddress":"地址电话地址电话地址电话地址电话地址电话地址电话地址电话地址电话地址电话",
"purchaserTaxNo":"131245812547125",
"sellerBankName":"开户行开户行开户行开户行开户行开户行开户行开户行开户行开户行开户行开户行",
"amountWithoutTax":"107.77",
"purchaserAddress":"上海市浦东区1011",
"purchaserBankName":"中国银行延平路支行",
"sellerBankAccount":"283183139128391389138112313",
"purchaserBankAccount":"622273638889201"
}
]
}
}
}
```
红冲:
```java
{
"code":2,
"message":"红冲",
"data":{
"erpOrderNos":[
"erp0710"
],
"partnerOrderNos":[
"order0710"
],
"invoiceEntrys":[
{
"remark":"",
"status":"2",
"details":[
{
"taxRate":"0",
"itemSpec":"酒店",
"quantity":"2.000000",
"cargoName":"*预付卡销售*预付卡",
"taxAmount":"0.00",
"unitPrice":"12.400000",
"quantityUnit":"天",
"amountWithTax":"24.8",
"amountWithoutTax":"24.80"
}
],
"invoiceNo":"40350628",
"sellerTel":"123213",
"taxAmount":"0",
"cipherText":"033/78877667*6474<+*/<1>*775908>/4658460-07-991/8/<3710376*6296/654/2088/2>/>2*34>+83529<>+>4101764<06+7+245-3*>",
"sellerName":"测试22",
"cashierName":"张果老",
"checkerName":"南极翁",
"invoiceCode":"010000000001",
"invoiceType":"c",
"sellerTaxNo":"11010120181016022",
"invoicerName":"铁头娃",
"purchaserTel":"021-36562390",
"amountWithTax":"24.80",
"paperDrewDate":"20190828",
"purchaserName":"测试公司",
"sellerAddress":"21312",
"purchaserTaxNo":"TEST0113MA1GKRCB2U",
"sellerBankName":" ",
"amountWithoutTax":"24.80",
"purchaserAddress":"上海市宝山区上大路",
"purchaserBankName":"中国民生银行",
"sellerBankAccount":" ",
"purchaserBankAccount":"698221810"
},
{
"remark":"对应正数发票代码:010000000001号码:40350628",
"status":"3",
"details":[
{
"taxRate":"0",
"itemSpec":"酒店",
"quantity":"-2.000000",
"cargoName":"*预付卡销售*预付卡",
"taxAmount":"0.00",
"unitPrice":"12.400000",
"quantityUnit":"天",
"amountWithTax":"-24.8",
"amountWithoutTax":"-24.80"
}
],
"invoiceNo":"40350629",
"sellerTel":"123213",
"taxAmount":"0",
"cipherText":"03*286-*4207615>551*489+<3<782385//4-/448*<3037/392/4-902/5>54*1<3296+782>86476036/9616*35813311764<0628<<*+/<*-",
"sellerName":"测试22",
"cashierName":"张果老",
"checkerName":"南极翁",
"invoiceCode":"010000000001",
"invoiceType":"c",
"sellerTaxNo":"11010120181016022",
"invoicerName":"铁头娃",
"purchaserTel":"021-36562390",
"amountWithTax":"-24.80",
"paperDrewDate":"20190828",
"purchaserName":"测试公司",
"sellerAddress":"21312",
"purchaserTaxNo":"TEST0113MA1GKRCB2U",
"sellerBankName":" ",
"amountWithoutTax":"-24.80",
"purchaserAddress":"上海市宝山区上大路",
"purchaserBankName":"中国民生银行",
"sellerBankAccount":" ",
"purchaserBankAccount":"698221810"
}
]
}
}
```
#### 注释
如果是拆票的情况,invoiceEntrys会返回多个InvoiceEntryDto对象;
如果是部分成功的情况,后续用户重试开票变为全部成功的时候会重新发送一次回调(两次都是对同一次开票申请做处理,所以需要合作方记录状态并做覆盖处理);
### 参数说明
| 参数| 类型| 说明|
| ------------ | ------------ |------------ |
|code|int|本次回调 1:作废,2:红冲|
|message|string|消息说明|
|data|`List<InvoiceRollbackDto>`|返回开票回调信息|
InvoiceRollbackDto:
| 参数| 类型| 说明|
| ------------ | ------------ |------------ |
|orderBatchNo|String | 订单批次号 |
|partnerOrderNos|`List<String>` | 渠道订单号集合|
|erpOrderNos|`List<String>` | ERP订单号集合|
|invoiceEntrys|`List<InvoiceEntryDto>` | 发票详情|
|invoiceEntrys[#].invoiceCode|String|发票代码(字符12位)|
|invoiceEntrys[#].invoiceNo|String|发票号码(字符8位)|
|invoiceEntrys[#].paperDrewDate|String|开票日期|
|invoiceEntrys[#].invoiceType|String|发票类型,s:纸质专票,c:纸质普票,ce:电子普票|
|invoiceEntrys[#].sellerTaxNo|String|销方税号|
|invoiceEntrys[#].sellerName|String|销方名称|
|invoiceEntrys[#].sellerAddress|String|销方地址|
|invoiceEntrys[#].sellerTel|String|销方电话|
|invoiceEntrys[#].sellerBankName|String|销方银行名称|
|invoiceEntrys[#].sellerBankAccount|String|销方银行账号|
|invoiceEntrys[#].purchaserTaxNo|String|购方税号|
|invoiceEntrys[#].purchaserName|String|购方名称|
|invoiceEntrys[#].purchaserAddress|String|购方地址|
|invoiceEntrys[#].purchaserTel|String|购方电话|
|invoiceEntrys[#].purchaserBankName|String|购方银行名称|
|invoiceEntrys[#].purchaserBankAccount|String|购方银行账号|
|invoiceEntrys[#].amountWithoutTax|String|不含税金额|
|invoiceEntrys[#].taxAmount|String|税额|
|invoiceEntrys[#].amountWithTax|String|含税金额|
|invoiceEntrys[#].cipherText|String|发票密文|
|invoiceEntrys[#].cipherTextTwoCode|String|密文二维码|
|invoiceEntrys[#].pdfPath|String|电票pdf路径|
|invoiceEntrys[#].status|String|单张发票状态,0作废,1正常,2红冲,3红冲出来的票|
|invoiceEntrys[#].proccessRemark|String|开票结果|
|invoiceEntrys[#].cashierName|String|付款人|
|invoiceEntrys[#].checkerName|String|审核人||
|invoiceEntrys[#].invoicerName|String|开票人|
|invoiceEntrys[#].remark|String|备注||
|invoiceEntrys[#].details|`List<InvoiceDetailDto>`|发票明细|
|invoiceEntrys[#].details[#].cargoName|String|货物或应税劳务名称|
|invoiceEntrys[#].details[#].itemSpec|String|规格型号|
|invoiceEntrys[#].details[#].quantityUnit|String|单位|
|invoiceEntrys[#].details[#].quantity|String|数量|
|invoiceEntrys[#].details[#].taxRate|String|税率|
|invoiceEntrys[#].details[#].unitPrice|String|单价|
|invoiceEntrys[#].details[#].amountWithoutTax|String|不含税总额|
|invoiceEntrys[#].details[#].taxAmount|String|税额|
|invoiceEntrys[#].details[#].amountWithTax|String|含税总额|
#### 注释
* code是本次开票请求的整体状态
* status是具体单张发票的开具状态
* message是本次开票请求的结果说明
* remark是具体单张发票的开票说明
## 接口定义
### 注意
需要做好接收回调接口的幂等性处理,以下情况会重复发送:
1. 接口无返回
2. 接口返回失败
### 请求方式:
`POST`
### 返回格式
| 参数| 类型| 说明|
| ------------ | ------------ |------------ |
|code|int|本次回调 -1:表示失败,0:表示成功|
|message|string|消息说明|
### 失败
```json
{
"code":-1,
"message":"回调失败"
}
```
### 成功
```json
{
"code":0,
"message":"回调成功"
}
```