快递100快递物流查询、寄件等功能java-demo

快递100API内支持很多的快递功能,能够满足大家的需求,我们还可以自定义选择快递接口,支持多家快递公司,顺丰、京东、EMS、邮政、百世、圆通、韵达、申通等等,让快递查询更快捷。下面的java-demo 是由快递100官方提供的java sdk,方便调试使用。集成了实时查询、订阅推送、智能判断、云打印相关、电子面单相关、短信、商家寄件等接口。

功能描述

  • 提供了快递100接口请求参数实体类、返回实体类。

  • 提供测试类调试。

  • 支持maven、gradle引入

接入前准备

  • java-demo使用和测试可参考java-demo-test

  • git clone https://github.com/kuaidi100-api/java-demo.git

    • 对接物流跟踪接口,你需要开发订阅接口(将单号和快递公司编码订阅给快递100。有订阅接口的.net,php和java版本demo,你可以参考下。还有自己开发一个推送接口(接收快递100推送的物流轨迹),开发完后登录快递100沙箱后台调试推送接口,调试成功后可在沙箱后台自助配置推送接口。
    • https://api.kuaidi100.com/register/enterprise 密钥获取页

Add Config

使用sdk的可以先配置account.properties,账号信息可以登录快递100获取。能返回多种格式的、完整的查询结果,具备众多参数供调用。这种接口需到快递100指定的页面进行申请,通过申请后才能使用。https://poll.kuaidi100.com/manager/page/myinfo/enterprise (注意不要泄露快递100的账号密码以及授权key等敏感信息,以防被他人盗用!!!)

  1. Gradle
  2. dependencies {
  3. implementation 'com.github.kuaidi100-api:sdk:1.0.4'
  4. }
  5. Maven
  6. <dependency>
  7. <groupId>com.github.kuaidi100-api</groupId>
  8. <artifactId>sdk</artifactId>
  9. <version>1.0.4</version>
  10. </dependency>
  11. Use Junit Test
  12. public class BaseServiceTest {
  13. private String key = PropertiesReader.get("key");
  14. private String customer = PropertiesReader.get("customer");
  15. private String secret = PropertiesReader.get("secret");
  16. private String siid = PropertiesReader.get("siid");
  17. private String userid = PropertiesReader.get("userid");
  18. private String tid = PropertiesReader.get("tid");
  19. private String secret_key = PropertiesReader.get("secret_key");
  20. private String secret_secret = PropertiesReader.get("secret_secret");
  21. /**
  22. * 查询物流轨迹
  23. */
  24. @Test
  25. public void testQueryTrack() throws Exception{
  26. QueryTrackReq queryTrackReq = new QueryTrackReq();
  27. QueryTrackParam queryTrackParam = new QueryTrackParam();
  28. queryTrackParam.setCom(CompanyConstant.YT);
  29. queryTrackParam.setNum("YT9383342193097");
  30. queryTrackParam.setPhone("17725390266");
  31. String param = new Gson().toJson(queryTrackParam);
  32. queryTrackReq.setParam(param);
  33. queryTrackReq.setCustomer(customer);
  34. queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
  35. IBaseClient baseClient = new QueryTrack();
  36. System.out.println(baseClient.execute(queryTrackReq));
  37. }
  38. /**
  39. * 快递信息地图轨迹
  40. */
  41. @Test
  42. public void testQueryMapView() throws Exception{
  43. QueryTrackReq queryTrackReq = new QueryTrackReq();
  44. QueryTrackParam queryTrackParam = new QueryTrackParam();
  45. queryTrackParam.setCom(CompanyConstant.YD);
  46. queryTrackParam.setNum("4311159956248");
  47. queryTrackParam.setPhone("17725390266");
  48. queryTrackParam.setFrom("河北保定市");
  49. queryTrackParam.setTo("湖南岳阳市");
  50. queryTrackParam.setResultv2("2");
  51. String param = new Gson().toJson(queryTrackParam);
  52. queryTrackReq.setParam(param);
  53. queryTrackReq.setCustomer(customer);
  54. queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
  55. IBaseClient baseClient = new QueryTrackMap();
  56. HttpResult result = baseClient.execute(queryTrackReq);
  57. QueryTrackMapResp queryTrackMapResp = new Gson().fromJson(result.getBody(),QueryTrackMapResp.class);
  58. System.out.println(queryTrackMapResp);
  59. }
  60. /**
  61. * 订阅
  62. */
  63. @Test
  64. public void testSubscribe() throws Exception{
  65. SubscribeParameters subscribeParameters = new SubscribeParameters();
  66. subscribeParameters.setCallbackurl("http://www.baidu.com");
  67. subscribeParameters.setPhone("17725390266");
  68. SubscribeParam subscribeParam = new SubscribeParam();
  69. subscribeParam.setParameters(subscribeParameters);
  70. subscribeParam.setCompany(CompanyConstant.ST);
  71. subscribeParam.setNumber("773039762404825");
  72. subscribeParam.setKey(key);
  73. SubscribeReq subscribeReq = new SubscribeReq();
  74. subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
  75. subscribeReq.setParam(new Gson().toJson(subscribeParam));
  76. IBaseClient subscribe = new Subscribe();
  77. System.out.println(subscribe.execute(subscribeReq));
  78. }
  79. /**
  80. * 智能识别接口(正式用户可以使用)
  81. */
  82. @Test
  83. public void testAutoNum() throws Exception{
  84. AutoNumReq autoNumReq = new AutoNumReq();
  85. autoNumReq.setKey(key);
  86. autoNumReq.setNum("773039762404825");
  87. IBaseClient baseClient = new AutoNum();
  88. System.out.println(baseClient.execute(autoNumReq));
  89. }
  90. /**
  91. * 电子面单图片接口
  92. */
  93. @Test
  94. public void testPrintImg() throws Exception{
  95. PrintImgParam printImgParam = new PrintImgParam();
  96. printImgParam.setKuaidicom(CompanyConstant.ZJS);
  97. printImgParam.setSendManName("张三");
  98. printImgParam.setSendManMobile("15999566666");
  99. printImgParam.setSendManPrintAddr("广东省深圳市南山区科技南十二路");
  100. printImgParam.setRecManName("李四");
  101. printImgParam.setRecManMobile("15999566666");
  102. printImgParam.setRecManPrintAddr("北京市海淀区xxx路");
  103. printImgParam.setType("10");
  104. printImgParam.setTempid("180c7c8f646742ca871a92c976392b05");
  105. printImgParam.setCount("1");
  106. String param = new Gson().toJson(printImgParam);
  107. String t = System.currentTimeMillis() + "";
  108. String sign = SignUtils.printSign(param,t,key,secret);
  109. PrintReq printReq = new PrintReq();
  110. printReq.setKey(key);
  111. printReq.setMethod(ApiInfoConstant.ELECTRONIC_ORDER_PIC_METHOD);
  112. printReq.setSign(sign);
  113. printReq.setParam(param);
  114. printReq.setT(t);
  115. IBaseClient printImg = new PrintImg();
  116. System.out.println(printImg.execute(printReq));
  117. }
  118. /**
  119. * 电子面单html接口
  120. */
  121. @Test
  122. public void testPrintHtml() throws Exception{
  123. ManInfo recManInfo = new ManInfo();
  124. recManInfo.setName("张三");
  125. recManInfo.setMobile("15999566666");
  126. recManInfo.setPrintAddr("广东省深圳市南山区科技南十二路");
  127. ManInfo sendManInfo = new ManInfo();
  128. sendManInfo.setName("李四");
  129. sendManInfo.setMobile("15999566666");
  130. sendManInfo.setPrintAddr("北京市海淀区xxx路");
  131. PrintHtmlParam printHtmlParam = new PrintHtmlParam();
  132. printHtmlParam.setKuaidicom(CompanyConstant.ZJS);
  133. printHtmlParam.setCount(2);
  134. printHtmlParam.setNeedChild(1);
  135. //如果需要返回电子面单,需要设置
  136. printHtmlParam.setNeedTemplate("1");
  137. printHtmlParam.setSendMan(sendManInfo);
  138. printHtmlParam.setRecMan(recManInfo);
  139. String t = System.currentTimeMillis() + "";
  140. String param = new Gson().toJson(printHtmlParam);
  141. String sign = SignUtils.printSign(param,t,key,secret);
  142. PrintReq printReq = new PrintReq();
  143. printReq.setKey(key);
  144. printReq.setMethod(ApiInfoConstant.ELECTRONIC_ORDER_HTML_METHOD);
  145. printReq.setT(t);
  146. printReq.setSign(sign);
  147. printReq.setParam(param);
  148. IBaseClient printHtml = new PrintHtml();
  149. System.out.println(printHtml.execute(printReq));
  150. }
  151. /**
  152. * 电子面单打印
  153. */
  154. @Test
  155. public void testPrintCloud() throws Exception{
  156. ManInfo recManInfo = new ManInfo();
  157. recManInfo.setName("张三");
  158. recManInfo.setMobile("15999566666");
  159. recManInfo.setPrintAddr("广东省深圳市南山区科技南十二路");
  160. ManInfo sendManInfo = new ManInfo();
  161. sendManInfo.setName("李四");
  162. sendManInfo.setMobile("15999566666");
  163. sendManInfo.setPrintAddr("北京市海淀区xxx路");
  164. PrintCloudParam printCloudParam = new PrintCloudParam();
  165. printCloudParam.setKuaidicom(CompanyConstant.ZJS);
  166. printCloudParam.setCount("1");
  167. printCloudParam.setSiid(siid);
  168. printCloudParam.setTempid("180c7c8f646742ca871a92c976392b05");
  169. printCloudParam.setSendMan(sendManInfo);
  170. printCloudParam.setRecMan(recManInfo);
  171. String param = new Gson().toJson(printCloudParam);
  172. String t = System.currentTimeMillis() + "";
  173. PrintReq printReq = new PrintReq();
  174. printReq.setT(t);
  175. printReq.setKey(key);
  176. printReq.setMethod(ApiInfoConstant.ELECTRONIC_ORDER_PRINT_METHOD);
  177. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  178. printReq.setParam(param);
  179. IBaseClient baseClient = new PrintCloud();
  180. System.out.println(baseClient.execute(printReq));
  181. }
  182. /**
  183. * 云打印自定义
  184. */
  185. @Test
  186. public void testCloudCustom() throws Exception{
  187. CloudPrintCustomParam cloudPrintCustomParam = new CloudPrintCustomParam();
  188. cloudPrintCustomParam.setSiid(siid);
  189. cloudPrintCustomParam.setCallBackUrl("http://www.baidu.com");
  190. cloudPrintCustomParam.setTempid("180c7c8f646742ca871a92c976392b05");
  191. String t = System.currentTimeMillis() + "";
  192. String param = new Gson().toJson(cloudPrintCustomParam);
  193. PrintReq printReq = new PrintReq();
  194. printReq.setKey(key);
  195. printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_CUSTOM_METHOD);
  196. printReq.setT(t);
  197. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  198. printReq.setParam(param);
  199. IBaseClient baseClient = new CloudPrintCustom();
  200. System.out.println(baseClient.execute(printReq));
  201. }
  202. /**
  203. * 云打印附件
  204. */
  205. @Test
  206. public void testCloudAttachment() throws Exception{
  207. CloudPrintAttachmentParam cloudPrintAttachmentParam = new CloudPrintAttachmentParam();
  208. cloudPrintAttachmentParam.setSiid(siid);
  209. cloudPrintAttachmentParam.setCallBackUrl("http://www.baidu.com");
  210. String t = System.currentTimeMillis() + "";
  211. String param = new Gson().toJson(cloudPrintAttachmentParam);
  212. CloudAttachmentReq cloudPrintAttachmentReq = new CloudAttachmentReq();
  213. cloudPrintAttachmentReq.setKey(key);
  214. cloudPrintAttachmentReq.setMethod(ApiInfoConstant.CLOUD_PRINT_ATTACHMENT_METHOD);
  215. cloudPrintAttachmentReq.setT(t);
  216. cloudPrintAttachmentReq.setSign(SignUtils.printSign(param,t,key,secret));
  217. cloudPrintAttachmentReq.setParam(param);
  218. cloudPrintAttachmentReq.setFile(new File("C:\\Users\\Administrator.-20171106WFEKLN\\Desktop\\1.jpg"));
  219. IBaseClient baseClient = new CloudPrintAttachment();
  220. System.out.println(baseClient.execute(cloudPrintAttachmentReq));
  221. }
  222. /**
  223. * 复打
  224. */
  225. @Test
  226. public void testCloudPrintOld() throws Exception{
  227. PrintReq printReq = new PrintReq();
  228. CloudPrintOldParam cloudPrintOldParam = new CloudPrintOldParam();
  229. cloudPrintOldParam.setTaskId("D21DB1AC74A260E6F5604FC43B4598B8");
  230. String t = System.currentTimeMillis() + "";
  231. String param = new Gson().toJson(cloudPrintOldParam);
  232. printReq.setKey(key);
  233. printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_OLD_METHOD);
  234. printReq.setT(t);
  235. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  236. printReq.setParam(param);
  237. IBaseClient cloudPrintOld = new CloudPrintOld();
  238. System.out.println(cloudPrintOld.execute(printReq));
  239. }
  240. /**
  241. * 发送短信
  242. */
  243. @Test
  244. public void testSendSms() throws Exception{
  245. SendSmsReq sendSmsReq = new SendSmsReq();
  246. sendSmsReq.setCallback("http://www.baidu.com");
  247. Map<String,String> content = new HashMap<String, String>();
  248. content.put("username","测试用户");
  249. sendSmsReq.setContent(new Gson().toJson(content));
  250. sendSmsReq.setPhone("15994708912");
  251. sendSmsReq.setSeller("贵司名称");
  252. sendSmsReq.setUserid(userid);
  253. sendSmsReq.setTid(tid);
  254. sendSmsReq.setSign(SignUtils.smsSign(key,userid));
  255. IBaseClient sendSms = new SendSms();
  256. System.out.println(sendSms.execute(sendSmsReq));
  257. }
  258. /**
  259. * 商家寄件查询运力
  260. */
  261. @Test
  262. public void testBorderQuery() throws Exception {
  263. BOrderQueryReq bOrderQueryReq = new BOrderQueryReq();
  264. bOrderQueryReq.setSendAddr("福田区华强南");
  265. String t = String.valueOf(System.currentTimeMillis());
  266. String param = new Gson().toJson(bOrderQueryReq);
  267. PrintReq printReq = new PrintReq();
  268. printReq.setKey(key);
  269. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  270. printReq.setT(t);
  271. printReq.setParam(param);
  272. printReq.setMethod(ApiInfoConstant.B_ORDER_QUERY_TRANSPORT_CAPACITY_METHOD);
  273. IBaseClient bOrder = new BOrder();
  274. System.out.println(bOrder.execute(printReq));
  275. }
  276. /**
  277. * 商家寄件
  278. */
  279. @Test
  280. public void testBorder() throws Exception {
  281. PrintReq printReq = new PrintReq();
  282. BOrderReq bOrderReq = new BOrderReq();
  283. bOrderReq.setKuaidicom(CompanyConstant.ZT);
  284. bOrderReq.setSendManName("张三");
  285. bOrderReq.setSendManMobile("15966666666");
  286. bOrderReq.setSendManPrintAddr("广东深圳市福田区华强南");
  287. bOrderReq.setRecManName("李四");
  288. bOrderReq.setRecManMobile("15966666666");
  289. bOrderReq.setRecManPrintAddr("广东深圳市南山区金蝶软件园");
  290. bOrderReq.setCallBackUrl("http://www.baidu.com");
  291. bOrderReq.setCargo("文件");
  292. bOrderReq.setRemark("测试下单,待会取消");
  293. bOrderReq.setWeight("1");
  294. bOrderReq.setSalt("123456");
  295. bOrderReq.setServiceType("标准快递");
  296. String t = String.valueOf(System.currentTimeMillis());
  297. String param = new Gson().toJson(bOrderReq);
  298. printReq.setKey(key);
  299. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  300. printReq.setT(t);
  301. printReq.setParam(param);
  302. printReq.setMethod(ApiInfoConstant.B_ORDER_SEND_METHOD);
  303. IBaseClient bOrder = new BOrder();
  304. System.out.println(bOrder.execute(printReq));
  305. }
  306. /**
  307. * 商家寄件获取验证码
  308. */
  309. @Test
  310. public void testBorderGetCode() throws Exception {
  311. PrintReq printReq = new PrintReq();
  312. BOrderGetCodeReq bOrderGetCodeReq = new BOrderGetCodeReq();
  313. bOrderGetCodeReq.setTaskId("4D07550D8E685E06B3C679632E68ACDD");
  314. bOrderGetCodeReq.setOrderId("100012022010566");
  315. String t = String.valueOf(System.currentTimeMillis());
  316. String param = new Gson().toJson(bOrderGetCodeReq);
  317. printReq.setKey(key);
  318. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  319. printReq.setT(t);
  320. printReq.setParam(param);
  321. printReq.setMethod(ApiInfoConstant.B_ORDER_CODE_METHOD);
  322. IBaseClient bOrder = new BOrder();
  323. System.out.println(bOrder.execute(printReq));
  324. }
  325. /**
  326. * 商家寄件取消
  327. */
  328. @Test
  329. public void testBorderCancel() throws Exception {
  330. PrintReq printReq = new PrintReq();
  331. BOrderCancelReq bOrderCancelReq = new BOrderCancelReq();
  332. bOrderCancelReq.setTaskId("4D07550D8E685E06B3C679632E68ACDD");
  333. bOrderCancelReq.setOrderId("100012022010566");
  334. bOrderCancelReq.setCancelMsg("测试单取消");
  335. String t = String.valueOf(System.currentTimeMillis());
  336. String param = new Gson().toJson(bOrderCancelReq);
  337. printReq.setKey(key);
  338. printReq.setSign(SignUtils.printSign(param,t,key,secret));
  339. printReq.setT(t);
  340. printReq.setParam(param);
  341. printReq.setMethod(ApiInfoConstant.B_ORDER_CANCEL_METHOD);
  342. IBaseClient bOrder = new BOrder();
  343. System.out.println(bOrder.execute(printReq));
  344. }
  345. /**
  346. * C端查询运力
  347. */
  348. @Test
  349. public void testCOrderQuery() throws Exception {
  350. COrderQueryReq cOrderQueryReq = new COrderQueryReq();
  351. cOrderQueryReq.setAddress("广东省深圳市南山区华强南");
  352. cOrderQueryReq.setSecret_key(secret_key);
  353. cOrderQueryReq.setSecret_code(CloudApiCodeConstant.ORDER_QUERY_EXPRESS);
  354. cOrderQueryReq.setSecret_sign(SignUtils.cloudSign(secret_key, secret_secret));
  355. IBaseClient cloudBase = new CloudBase();
  356. System.out.println(cloudBase.execute(cOrderQueryReq));
  357. }
  358. /**
  359. * c端寄件
  360. */
  361. @Test
  362. public void testCOrder() throws Exception {
  363. COrderReq cOrderReq = new COrderReq();
  364. cOrderReq.setCom(CompanyConstant.JD);
  365. cOrderReq.setSendManName("张三");
  366. cOrderReq.setSendManMobile("15966666666");
  367. cOrderReq.setSendManPrintAddr("广东深圳市南山区金蝶软件园");
  368. cOrderReq.setRecManName("李四");
  369. cOrderReq.setRecManMobile("15966666666");
  370. cOrderReq.setRecManPrintAddr("广东深圳市福田区华强南");
  371. cOrderReq.setCallBackUrl("http://www.baidu.com");
  372. cOrderReq.setCargo("文件");
  373. cOrderReq.setRemark("测试下单,待会取消");
  374. cOrderReq.setWeight("1");
  375. cOrderReq.setSalt("123456");
  376. cOrderReq.setSecret_key(secret_key);
  377. cOrderReq.setSecret_code(CloudApiCodeConstant.ORDER);
  378. cOrderReq.setSecret_sign(SignUtils.cloudSign(secret_key,secret_secret));
  379. IBaseClient cloudBase = new CloudBase();
  380. System.out.println(cloudBase.execute(cOrderReq));
  381. }
  382. /**
  383. * c端取消寄件
  384. */
  385. @Test
  386. public void testCOrderCancel() throws Exception {
  387. COrderCancelReq cOrderCancelReq = new COrderCancelReq();
  388. cOrderCancelReq.setTaskId("B19BB4C6F33BE9E735A63D4142557751");
  389. cOrderCancelReq.setOrderId("11115207");
  390. cOrderCancelReq.setCancelMsg("测试单");
  391. cOrderCancelReq.setSecret_key(secret_key);
  392. cOrderCancelReq.setSecret_code(CloudApiCodeConstant.ORDER_CANCEL);
  393. cOrderCancelReq.setSecret_sign(SignUtils.cloudSign(secret_key,secret_secret));
  394. IBaseClient cloudBase = new CloudBase();
  395. System.out.println(cloudBase.execute(cOrderCancelReq));
  396. }
  397. }

快递100apiFAQ

问题1.快递100api接口里sign该如何处理?

快递100加密方式统一为MD5后转大写,可以参考签名

org.apache.commons.codec.digest.DigestUtils.md5Hex(msg).toUpperCase();

问题2.使用了快递100订阅接口后,该如何处理回调接口?

可以参考推送订阅回调

  1. public SubscribeResp callBackUrl(HttpServletRequest request){
  2. String param = request.getParameter("param");
  3. String sign = request.getParameter("sign");
  4. //建议记录一下这个回调的内容,方便出问题后双方排查问题
  5. log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
  6. //订阅时传的salt,没有可以忽略
  7. String salt = "";
  8. String ourSign = SignUtils.sign(param + salt);
  9. SubscribeResp subscribeResp = new SubscribeResp();
  10. subscribeResp.setResult(Boolean.TRUE);
  11. subscribeResp.setReturnCode("200");
  12. subscribeResp.setMessage("成功");
  13. //加密如果相等,属于快递100推送;否则可以忽略掉当前请求
  14. if (ourSign.equals(sign)){
  15. //TODO 业务处理
  16. return subscribeResp;
  17. }
  18. return null;
  19. }

问题3.使用电子面单图片接口,该如何处理返回的base64图片?

返回的是一个字符串json数组,多个子单时会有多个。

添加前缀“data:image/png;base64,”,把“\\n”替换成“”;可以参考处理返回的base64字符串

  1. public List<String> getBase64Img(String imgBase64){
  2. List<String> stringList= new Gson().fromJson(imgBase64,
  3. new TypeToken<List<String>>() {}.getType());
  4. List<String> base64Img = new ArrayList<String>();
  5. if (stringList != null && stringList.size()>0){
  6. for (String s : stringList) {
  7. s = "data:image/png;base64,"+s.replace("\\\\n","");
  8. base64Img.add(s);
  9. }
  10. }
  11. return base64Img;
  12. }

问题4.云平台其他接口该如何对接?

第一步:根据对应接口新增对应的请求参数类,继承CloudBaseReq,类似快递寄件接口取消寄件请求参数类

  1. public class COrderCancelReq extends CloudBaseReq{
  2. /**
  3. * 任务ID
  4. */
  5. private String taskId;
  6. /**
  7. * 订单ID
  8. */
  9. private String orderId;
  10. /**
  11. * 取消原因,例:暂时不寄件了
  12. */
  13. private String cancelMsg;
  14. }

第二步:调用时只需要更换成第一步新建的实体

  1. public void testCOrderCancel() throws Exception {
  2. COrderCancelReq cOrderCancelReq = new COrderCancelReq();
  3. cOrderCancelReq.setTaskId("B19BB4C6F33BE9E735A63D4142557751");
  4. cOrderCancelReq.setOrderId("11115207");
  5. cOrderCancelReq.setCancelMsg("测试单");
  6. cOrderCancelReq.setSecret_key(secret_key);
  7. cOrderCancelReq.setSecret_code(CloudApiCodeConstant.ORDER_CANCEL);
  8. cOrderCancelReq.setSecret_sign(SignUtils.cloudSign(secret_key,secret_secret));
  9. IBaseClient cloudBase = new CloudBase();
  10. System.out.println(cloudBase.execute(cOrderCancelReq));
  11. }

tips:key、secret、code等账号信息获取,云平台->买家中心-我的接口
tips:key、secret、code等账号信息获取,云平台->买家中心-我的接口

更多相关文章

  1. python怎么查询快递信息?快递查询接口大全系列
  2. PHP快递查询接口api和快递单号智能判断PHP代码
  3. 顺丰快递单号查询API接口代码及流程【快递100API接口】
  4. 【记账小程序】收入和支出首页展示与数字键功能、编辑后端分类列
  5. 接入超过100家快递物流查询API接口调用指南
  6. PHP:使用curl请求聚合支付的驾考宝典题库接口数据, 并渲染到页面
  7. 10.)PHPWeb开发框架~Laravel自带php artisan 命令行接口集合列表
  8. 快递公司如何接入快递100?快递100手机查快递接口实例
  9. 快递公司如何接入快递100?快递100电子面单接口的示例

随机推荐

  1. The bytes/str dichotomy in Python 3
  2. python实现单例模式
  3. 自学Python七 爬虫实战一
  4. Python文件遍历的三种方法
  5. 信息隐藏-空域隐藏-python-LSB
  6. Django EventLog:传入当前用户
  7. Python---64位的windows系统中python的下
  8. 编程语言与Python学习(二)
  9. Python基础--图形用户界面GUI
  10. python tkinter窗口弹出置顶的方法