开票重试接口
发票开票失败时,可使用该接口进行重推开票,发票订单号、流水号与原请求一致 1、对于开票成功状态的发票(发票生成、开票完成),调用该接口,提示:发票已生成,无需再重试开票 2、对于开票中状态的发票,调用该接口,提示:开票中(重试中),请耐心等待开票结果
一、请求参数
请求URL:
POST https://kf.fw199.com/gateway/nuonuo/invoice/rebillingnew
| 参数名 | 类型 | 必须 | 示例值 | 说明 |
|---|---|---|---|---|
| appid | String | true | uwkahf@jfs92 | 合作伙伴AppId |
| timestamp | String | true | 1633618722 | 当前时间戳 |
| sign | String | true | 999de41d862efaa6f1084ead3b3ba480 | 如何计算生成见示例代码 |
| tax_num | String | true | 4214132412414 | 销售方税号 |
| request_data | Json | true | 见示例代码 | 重试开票业务报文 |
二、请求示例代码
Java
// 开票接口重试 @Test public void NNReBillingNEW() throws Exception {
// 销售方公司税号 String saleTaxNum = "91310117568051223X"; //上海xx节能科技有限公司 //订单号orderNo为之前请求开具发票接口中的orderNo 一致。表示对之前那个订单进行重试。 String request_data = "{" + " \"orderno\": \"20240122150518179381\"" + "}"; //业务参数 Map<String, String> data = new HashMap<String, String>(); data.put("appid", Config.AppId); Long timestamp = System.currentTimeMillis() / 1000; data.put("timestamp", timestamp.toString()); data.put("tax_num", saleTaxNum); data.put("request_data",request_data); // 签名 data.put("sign", Utils.Sign(data,Config.AppSecret)); // 调用服务API String resp = doHttpRequest(Config.NN_RE_BILLING_NEW, data); System.out.println(resp); }二(一)、请求参数说明
| 名称 | 类型 | 是否必须 | 示例值 | 描述 |
|---|---|---|---|---|
| tax_num | String | Y | 91310117568051222X | 销售方的税号 |
| request_data | String | Y | {“orderno”:”223881341324”} | 业务报文,json格式 |
三、返回结果
重试成功时code返回为0
{ "code": 0, "message": "重试成功" }如果之前开票成功,code为100, 则直接返回发票号和pdf下载地址
{ "code": 100, "invoice_down_url": "https://inv.jss.com.cn/fp2/_du8ccsApfF5aFxZaYEBkckAQ2xe8yafOkSoUyQt9Po8-KM11E_Yx2g-dd4e4lP5i-2j5waUWLpqbkFgmT79TQ.pdf", "invoice_no": "24312000000022669098", "message": "发票已经生成,不需要重复提交"}如果code是其他数值,则说明重试失败,message字段包含失败的原因。
四、返回参数说明
| 参数接口 | 参数类型 | 例子 | 说明 |
|---|---|---|---|
| code | int | 0 | 状态码,0:重试成功,蜂巢将稍后重新推送开票结果,100:成功并直返回发票号和pdf下载地址, 其他值:重试失败 |
| message | String | 本次操作需登录电子发票服务平台,请先使用短信验证码登录 | 重试失败时的消息 |