package com.iamberry.nuonuo.test; import com.iamberry.nuonuo.bean.PrivateData; import com.iamberry.nuonuo.bean.PublicData; import com.iamberry.nuonuo.bean.RequestMode; import com.iamberry.nuonuo.exception.OpensnsException; import com.iamberry.nuonuo.oauth.Oauth2AccessToken; import com.iamberry.nuonuo.service.OpenApiV1; import com.iamberry.nuonuo.util.SecurityUtil; import com.iamberry.nuonuo.util.StateData; import com.iamberry.nuonuo.util.ValidataUtil; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 测试示例 * @author sdk.jss.com.cn * @version 2.0 * @since jdk1.6 */ public class TestOpenApiV1 { public static void main(String[] args) { TestOpenApiV1.setHeader(); Map headers = getHeaders(); PublicData pdData = getPublicData(); PrivateData pvData = new PrivateData(); List> list = new ArrayList>(); List> list_invoiceDetail = new ArrayList>(); Map map_s = new HashMap(); Map map_order = new HashMap(); Map map_invoiceDetails = new HashMap(); map_order.put("pushMode", "1"); map_order.put("buyerName", "安徽省安迈达进出口有限公司"); map_order.put("buyerTaxNum", "913400007349708745"); map_order.put("buyerPhone", "17098074113"); map_order.put("buyerAddress", "333"); map_order.put("buyerAccount", "333"); map_order.put("orderNo", System.currentTimeMillis() + "001"); map_order.put("invoiceDate", "2016-06-15 01:59:41"); map_order.put("clerk", "袁牧庆"); map_order.put("salerAccount", "东亚银行杭州分行131001088303400"); map_order.put("salerTel", "0571-87022168"); map_order.put("salerAddress", "杭州市中河中路222号平海国际商务大厦5楼"); map_order.put("salerTaxNum", "339901999999142"); map_order.put("invoiceType", "1"); map_order.put("remark", "开票机号为02 请前往诺诺网(www.jss.com.cn)查询发票详情"); map_order.put("payee", "络克"); map_order.put("checker", "朱燕"); map_order.put("invoiceCode", "11"); map_order.put("invoiceNum", "11"); map_order.put("pushMode", "1"); map_order.put("email", "122@qq.com"); map_order.put("listFlag", "0"); map_order.put("listName", "1111"); map_order.put("buyerTel", "0571-88888888"); map_order.put("proxyInvoiceFlag", "0"); map_order.put("departmentId", "23456790"); map_order.put("clerkId", ""); map_invoiceDetails.put("goodsName", "1"); map_invoiceDetails.put("num", "1"); map_invoiceDetails.put("withTaxFlag", "1"); map_invoiceDetails.put("price", "46.79"); map_invoiceDetails.put("taxRate", "0.16"); map_invoiceDetails.put("specType", "1"); map_invoiceDetails.put("unit", "1"); map_invoiceDetails.put("goodsCode", "1090511030000000000"); map_invoiceDetails.put("selfCode", null); map_invoiceDetails.put("invoiceLineProperty", "0"); map_invoiceDetails.put("favouredPolicyFlag", "0"); map_invoiceDetails.put("favouredPolicyName", null); map_invoiceDetails.put("zeroRateFlag", null); map_invoiceDetails.put("deduction", null); map_invoiceDetails.put("tax", "6.45"); map_invoiceDetails.put("taxIncludedAmount", "46.79"); map_invoiceDetails.put("taxExcludedAmount", "40.34"); list_invoiceDetail.add(map_invoiceDetails); map_order.put("invoiceDetail", list_invoiceDetail); map_order.put("invoiceLine", "p"); map_order.put("productOilFlag", "0"); map_s.put("order", map_order); list.add(map_s); pvData.setServicedata(list); RequestMode requestMode = getRequestMode(pdData,pvData); OpenApiV1 sdk = new OpenApiV1(); try { String result = sdk.handle(StateData.url,headers, requestMode); } catch (OpensnsException e) { e.printStackTrace(); } } public static void setHeader(){ StateData.app_secret = "SD950B2179EB4A77"; // 填写本APP申请的 appSecret,注意区分正式环境与沙箱环境参数,如: 9B4CA8CEA5EE4823 StateData.app_key = "SDnyMiOMQZ"; // 填写本APP申请的 appKey,注意区分正式环境与沙箱环境参数,如:fk5dWkPA StateData.app_api = "nuonuo.electronInvoice.requestBilling"; // 填写APP调用接口名称,如:nuonuo.speedBilling.billingByCode --开票:nuonuo.electronInvoice.requestBilling StateData.app_apiVersion = "V1.0.0"; // 填写本APP调用接口版本,如:1.0.0 StateData.app_accessToken = "fdd052d08bbad090aeff770febrcasfs"; // 填写本APP申请的 令牌 ,注意区分正式环境与沙箱环境参数,如://{"access_token":"fdd052d08bbad090aeff770kgia1mkms","expires_in":86400} StateData.app_dataType = "JSON"; // 填写本APP传输数据格式,如:JSON,XML StateData.app_compressType = ""; // 填写本APP传输数据压缩格式,如:GZIP StateData.app_signType = "AES"; // 填写本APP传输数据加密格式,如:AES/AES StateData.user_Tax = ""; // 业务发生方税号(ISV类型用户必填);如:339901999999142 授权商户的税号(商家应用非必填,服务商应用必填) StateData.url = "https://sandbox.jss.com.cn/openPlatform/services"; StateData.grant_type_token = "authorization_code"; Oauth2AccessToken.client_id = "SDnyMiOMQZ"; //创建应用后,分配给应用的appKey Oauth2AccessToken.client_secret = "SD950B2179EB4A77"; //创建应用后,分配给应用的appSecret Oauth2AccessToken.token_grant_type = StateData.grant_type_token; //授权类型,在本步骤中,此值为“authorization_code” } // 定义请求头数据 private static Map getHeaders() { Map headers = new HashMap(); headers.put("appKey", StateData.app_key); // 用户申请的appkey headers.put("accessToken", StateData.app_accessToken); // 用户Oauth登录后得到的令牌accessToken headers.put("compress", StateData.app_compressType);// 压缩方式:提供GZIP 置空“”不压缩 headers.put("signMethod", StateData.app_signType); // 加密方式:提供AES/AES,不可为空 headers.put("dataType", StateData.app_dataType); // 数据请求格式: JSON/XML headers.put("appRate", StateData.app_rate); // app并发请求数 ,平台默认10如需升级请联系开放平台 headers.put("userTax", StateData.user_Tax); // ISV下商家需要填写当前商户税号,普通商家模式用户可以不填写此值 headers.put("Content-Type", StateData.contentType); // http发送模式 return headers; } // 定义请求体中的公共数据 private static PublicData getPublicData() { PublicData pdData = new PublicData(); pdData.setVersion(StateData.app_apiVersion); // API版本 pdData.setTimestamp(String.valueOf(System.currentTimeMillis())); pdData.setMethod(StateData.app_api);// API名称 return pdData; } private static RequestMode getRequestMode(PublicData pdata, PrivateData pvData) { RequestMode requestMode = new RequestMode(); requestMode.setPrivate(pvData); requestMode.setPublic(pdata); return requestMode; } }