This commit is contained in:
linfso 2024-11-20 10:23:54 +08:00
parent 1d7c04fcb3
commit 09f364d067

View File

@ -168,7 +168,14 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC
EmisBaseInvoiceChInfo emisBaseInvoiceChInfo=emisBaseInvoiceChInfoMapper.selectEmisBaseInvoiceChInfoByTaxNo(old.getSalerCompanyTaxNo());
HXOrderInfo order = new HXOrderInfo();
String token=HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(),emisBaseInvoiceChInfo.getAppSecret());
// 判断token是否存在如果token不存在则获取token
if(StringUtils.isEmpty(emisBaseInvoiceChInfo.getToken())) {
String token = HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(), emisBaseInvoiceChInfo.getAppSecret());
emisBaseInvoiceChInfo.setToken(token);
// 更新token
emisBaseInvoiceChInfoMapper.updateEmisBaseInvoiceChInfo(emisBaseInvoiceChInfo);
}
order.setOrderNo(old.getReqNo());
order.setBuyerTaxNum(old.getCompanyTaxNo());
@ -255,7 +262,27 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC
order.setDetailInfos(goodsList);
JSONObject jRst =HXSdk.asyncOpenBillReceive(order,token);
JSONObject jRst =HXSdk.asyncOpenBillReceive(order,emisBaseInvoiceChInfo.getToken());
// 如果token失效则重新获取token再触发一次
/*
"code": "B0301",
"exceptionClazz": "AuthException",
"exceptionPlace": "",
"exceptionTip": "当前登录会话过期,请重新登录",
"message": "当前登录会话过期,请重新登录",
*/
String rstCode=jRst.getString("code");
String rstMsg=jRst.getString("message");
if("B0301".equals(rstCode) || "当前登录会话过期,请重新登录".equals(rstMsg)){
String token = HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(), emisBaseInvoiceChInfo.getAppSecret());
emisBaseInvoiceChInfo.setToken(token);
// 更新token
emisBaseInvoiceChInfoMapper.updateEmisBaseInvoiceChInfo(emisBaseInvoiceChInfo);
// 再次发出请求
jRst =HXSdk.asyncOpenBillReceive(order,emisBaseInvoiceChInfo.getToken());
}
// 更新开票状态
if( "00000".equals(jRst.getString("code")) ){
EmisSettleInvoiceChRecord newRecord=new EmisSettleInvoiceChRecord();
@ -303,10 +330,37 @@ public class EmisSettleInvoiceChRecordServiceImpl implements IEmisSettleInvoiceC
EmisBaseInvoiceChInfo emisBaseInvoiceChInfo = emisBaseInvoiceChInfoMapper.selectEmisBaseInvoiceChInfoByTaxNo(itemRecord.getSalerCompanyTaxNo());
String token = HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(), emisBaseInvoiceChInfo.getAppSecret());
// 判断token是否存在如果token不存在则获取token
if(StringUtils.isEmpty(emisBaseInvoiceChInfo.getToken())) {
String token = HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(), emisBaseInvoiceChInfo.getAppSecret());
emisBaseInvoiceChInfo.setToken(token);
// 更新token
emisBaseInvoiceChInfoMapper.updateEmisBaseInvoiceChInfo(emisBaseInvoiceChInfo);
}
// 立即查询状态
JSONObject jQRst = HXSdk.queryInvoiceResult(itemRecord.getReqNo(), token);
JSONObject jQRst = HXSdk.queryInvoiceResult(itemRecord.getReqNo(), emisBaseInvoiceChInfo.getToken());
// 如果token失效则重新获取token再触发一次
/*
"code": "B0301",
"exceptionClazz": "AuthException",
"exceptionPlace": "",
"exceptionTip": "当前登录会话过期,请重新登录",
"message": "当前登录会话过期,请重新登录",
*/
String rstCode=jQRst.getString("code");
String rstMsg=jQRst.getString("message");
if("B0301".equals(rstCode) || "当前登录会话过期,请重新登录".equals(rstMsg)){
String token = HXSdk.getToken(emisBaseInvoiceChInfo.getAppKey(), emisBaseInvoiceChInfo.getAppSecret());
emisBaseInvoiceChInfo.setToken(token);
// 更新token
emisBaseInvoiceChInfoMapper.updateEmisBaseInvoiceChInfo(emisBaseInvoiceChInfo);
// 再次发出请求
jQRst = HXSdk.queryInvoiceResult(itemRecord.getReqNo(), token);
}
if ("00000".equals(jQRst.getString("code"))) {
JSONObject data = jQRst.getJSONObject("data");
JSONArray jInvoiceInfos = data.getJSONArray("invoiceInfos");