# 开票结果异步通知

# 接口说明

由于发票开具的异步处理机制,开发者发起的蓝票开具、红冲发票申请,开放平台会根据传入的异步通知地址 callback_url(开具时传入),通过POST请求的形式将结果作为参数通知给开发者。
>1. 蓝票开具结果、发票冲红结果都由本接口回调
>2. 异步通知是由高灯平台主动发起通知给开发者,只有在高灯平台的开票数据中存在该笔开票申请,且发生了开票状态的改变,才会发送通知。
>3. 开放平台用<font color=#FF0000 >POST Content-Type:Application/Json</font>方式发送通知信息
>4. 开发者接口端程序执行完后返回json,成功时code为0;如果开发者反馈给平台返回的code不是0,平台会不断重发通知。【一般情况下,最多完成10次通知(通知的间隔频率一般是:1m, 10m, 10m, 30m, 30m, 60m, 60m, 120m, 180m, 360m)】

# 返回字段说明

参数 是否必须 类型 最大长度 说明
appkey string 32 开发者appkey
message string 100 返回结果详情
notify_type string 20 通知类型: <br>invoice.blue(蓝票回调)<br>invoice.red(红票回调)
notify_time string 20 通知时间:格式"1640966400"
order_id string 64 商户订单号:开发者接入方业务订单唯一标识(开具蓝票开具时填入值)
g_unique_id string 64 高灯方商户订单号:开发者商户订单号对应的高灯方商户订单唯一标识(与order_sn一致,兼容老平台开发者,新开发者请使用order_sn)
order_sn string 64 高灯方商户订单号:开发者商户订单号对应的高灯方商户订单唯一标识
ticket_sn string 8 发票号码:如果开票失败时值为空
ticket_code string 12 发票代码:如果开票失败时值为空
ticket_date string 20 开票时间
ticket_status string 1 发票状态:<br>1:开票中<br>2:开票失败<br>3:开票成功<br>4:开票成功作废中<br>5:开票成功作废失败<br>6:开票成功作废成功
ticket_total_amount_has_tax string 20 发票含税总价:开票失败时值为空
ticket_total_amount_no_tax string 20 发票去税总价:开票失败时值为空
ticket_tax_amount string 20 发票税额:开票失败时值为空
qrcode text - 发票二维码base64内容:最大10Kb,渠道不同可能返回为空,以实际结果为准
check_code string 50 发票校验码:开票失败时值为空,以实际结果为准
cipher_text string 200 发票密文,以实际结果为准
pdf_url string 200 发票PDFurl地址:开票失败时值为空(若开具为纸票没有pdf),以实际结果为准

# 异步通知示例

    {
        &quot;appkey&quot;:&quot;2017112457241500&quot;,
        &quot;order_id&quot;:&quot;200000001327144140800000020&quot;,
        &quot;check_code&quot;:&quot;64445110173853614637&quot;,
        &quot;cipher_text&quot;:&quot;&quot;,
        &quot;g_unique_id&quot;:&quot;20171222000000066215139296047040&quot;,
        &quot;order_sn&quot;:&quot;20171222000000066215139296047040&quot;,
        &quot;pdf_url&quot;:&quot;http://kpserverdev-1251506165.cossh.myqcloud.com/upload/fp_file/fp_15139296061565.pdf&quot;,
        &quot;qrcode&quot;:&quot;Qk3CAwAAAAAAAD4AAAAoAAAASwAAAEsAAAABAAEAAAAAAIQDAAAAAAAAAAAAAAAAAAACAAAAAAAA///////////////////gAAAAAwAAAPzM8DAgAAAAAwAAAPzM8DAgAAA/88zDMz8A8PPgAAA/88zDMz8A8PPgAAAwMwM/DDDD8w/gAAAwMwM/DDDD8w/gAAAwMwP88wA/MA8gAAAwMwP88wA/MA8gAAAwM8Pz8/M/ADwgAAAwM8Pz8/M/ADwgAAA/8wDM/PA/PzzgAAA/8wDM/PA/PzzgAAAAAzwwz8/DMw8gAAAAAzwwz8/DMw8gAAD//z/MA/zAPzAgAAD//z/MA/zAPzAgAAAM8DDMP88DAADgAAAM8DDMP88DAADgAADDDPwDP888M8zgAADDDPwDP888M8zgAAA/M8/wAD8D/8PgAAA/M8/wAD8D/8PgAAAPPAP/Aw/M8w8gAAAPPAP/Aw/M8w8gAAAMwzMw8wPMMDAgAAAMwzMw8wPMMDAgAADzDzMAMMADwPMgAADzDzMAMMADwPMgAAA888D/zwDDDAzgAAA888D/zwDDDAzgAAA8//8z/Pw/z8zgAAA8//8z/Pw/z8zgAADDADDzzwM//w/gAADDADDzzwM//w/gAADPDwAzwPMwzzzgAADPDwAzwPMwzzzgAAADA8PAMP88M88gAAADA8PAMP88M88gAAD/D/8zPDzAAMAgAAD/D/8zPDzAAMAgAAD8MD/PAz8DDMPgAAD8MD/PAz8DDMPgAAADP8/zw8M/zM8gAAADP8/zw8M/zM8gAADMAzwzAPPzz/PgAADMAzwzAPPzz/PgAADwzP/w8DP88wMgAADwzP/w8DP88wMgAAAMM8M/w//MMDMgAAAMM8M/w//MMDMgAADADPMM/P/M/PDgAADADPMM/P/M/PDgAAD8MzM8z8D/zDzgAAD8MzM8z8D/zDzgAAAzz8P8P8wzz//gAAAzz8P8P8wzz//gAAAwwPA8Pz8/88wgAAAwwPA8Pz8/88wgAAD//w8Pw8ww///gAAD//w8Pw8ww///gAAAAAzMzMzMzMAAgAAAAAzMzMzMzMAAgAAA/88w//M8D8/8gAAA/88w//M8D8/8gAAAwM/A/AAP88wMgAAAwM/A/AAP88wMgAAAwMzDDwDzMMwMgAAAwMzDDwDzMMwMgAAAwM8DM/z/DMwMgAAAwM8DM/z/DMwMgAAA/8zPz/AADM/8gAAA/8zPz/AADM/8gAAAAAwwP8w8z8AAgAAAAAwwP8w8z8AAgAAA=&quot;,
        &quot;notify_time&quot;:&quot;2017-12-22 16:00:06&quot;,
        &quot;notify_type&quot;:&quot;invoice.blue&quot;,
        &quot;message&quot;:&quot;SUCCESS&quot;,
        &quot;ticket_code&quot;:&quot;150003533340&quot;,
        &quot;ticket_date&quot;:&quot;1640966400&quot;,
        &quot;ticket_sn&quot;:&quot;35685773&quot;,
        &quot;ticket_status&quot;:3,
        &quot;ticket_tax_amount&quot;:&quot;0.00&quot;,
        &quot;ticket_total_amount_has_tax&quot;:&quot;5.00&quot;,
        &quot;ticket_total_amount_no_tax&quot;:&quot;5.00&quot;
    }

# 返回示例

{
    &quot;code&quot;:0,
    &quot;message&quot;:&quot;success&quot;,
    &quot;data&quot;:{}
}