package com.iamberry.rst.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.iamberry.file.FileToBase64; import com.iamberry.rst.core.ei.Billing; import com.iamberry.rst.core.ei.BillingItem; import com.iamberry.rst.core.ei.PlatformInfo; import com.iamberry.rst.core.ei.PushLog; import com.iamberry.rst.faces.ei.BillingService; import com.iamberry.rst.faces.ei.PlatformInfoService; import com.iamberry.rst.faces.ei.PushLogService; import com.iamberry.wechat.tools.NameUtils; import com.jd.open.api.sdk.DefaultJdClient; import com.jd.open.api.sdk.JdClient; import com.jd.open.api.sdk.JdException; import com.jd.open.api.sdk.domain.jinsuanpan.FinInvoiceOwnProvider.response.apply.InvoiceOwnResult; import com.jd.open.api.sdk.request.jinsuanpan.PopInvoiceSelfAmountRequest; import com.jd.open.api.sdk.request.jinsuanpan.PopInvoiceSelfApplyRequest; import com.jd.open.api.sdk.response.jinsuanpan.PopInvoiceSelfAmountResponse; import com.jd.open.api.sdk.response.jinsuanpan.PopInvoiceSelfApplyResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; /** * 京东对接后台商户服务 */ @Service public class JdServiceUtil { private Logger logger = LoggerFactory.getLogger(JdServiceUtil.class); private String JD_URL = NameUtils.getConfig("JD_URL"); private String JD_ORDER = NameUtils.getConfig("JD_ORDER"); @Autowired private PlatformInfoService platformInfoService; @Autowired private BillingService billingService; @Autowired private PushLogService pushLogService; /** * 京东商户平台查询订单信息 * @param orderId * @param platId * @json * @return * @throws JdException */ public Billing getJdOrder(String orderId, Integer platId){ Billing billing = new Billing(); PlatformInfo platformInfo = platformInfoService.getPlatformInfoById(platId); JdClient client = new DefaultJdClient(JD_URL,platformInfo.getPlatAccessToken(),platformInfo.getPlatAppKey(),platformInfo.getPlatAppSecret()); PopInvoiceSelfAmountRequest rq=new PopInvoiceSelfAmountRequest(); rq.setOrderId(orderId); PopInvoiceSelfAmountResponse response = null; try { response = client.execute(rq); } catch (JdException e) { e.printStackTrace(); billing.setBillResultMsg("京东api调用失败!"); return billing; } String json = response.getMsg(); List billingItemList = new ArrayList(); String billCompanyName = "",billTaxNumber=""; Double amount = 0.00; try{ JSONObject jsonObject = JSON.parseObject(json); jsonObject = jsonObject.getJSONObject("jingdong_pop_invoice_self_amount_responce") .getJSONObject("queryamountforown_result") .getJSONObject("data"); amount = jsonObject.getDouble("shouldInvoiceAmount")*100; billCompanyName = jsonObject.getString("ivcTitle"); //公司名称 billTaxNumber = jsonObject.getString("customerTaxNo"); //公司税号 JSONArray jsonArray = (JSONArray) jsonObject.get("orderShouldInvoiceAmountDetailList"); if(jsonArray != null && jsonArray.size()>0){ for(int i=0;i