对接比较容易的java快递查询java接口对接谁有?

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
JAVA免费快递查询api对接文档
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口快递100查询接口!!?【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:657,458贴子:
快递100查询接口!!?收藏
悬赏啊!!!!
今年备考执业药师在线学,还有核心复习资料拿
来人啊,,,
我知道没有本人长腿照你们是不会来的
看看showapi网站里面有没有,我看到过有快递的
今年备考执业药师在线学,还有核心复习资料拿
快递鸟查询接口支持全球400余家物流快递接口 ,永久免费不限次,专业大数据产品团队保障稳定、准确、及时性,多个云数据中心部署,分布式架构,多工作节点,单日支撑超过10亿次数据服务,前端负载均衡,信息无阻塞接收,并发5000以上处理能力,接口与快递公司多通道通信,可用性达到99.9%以上,推送速度定制配置,保证接入方系统的稳定[1]
,接口DEMO与专属技术支持,最快1小时接入。
登录百度帐号推荐应用匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。& & 电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。
一.电子面单接口类型及定义
1. 快递电子面单接口:快递公司自己开发的电子面单服务,商家使用必须快递公司上门做系统对接,使用一家快递则需要对接一次。
2..:可一次对接15家快递公司,无需和每一家快递公司做对接。支持快递有四通一达、EMS、宅急送、德邦、优速、天天、快捷、全峰等15家常用快递公司,其中不包括顺丰。
3.:可一次对接15家快递公司,无需和每一家快递公司做对接。支持快递有四通一达、顺丰、EMS、宅急送、德邦、优速等15家快递公司,对顺丰有电子面单服务需求的可以选择顺丰自有的电子面单或者是快递鸟电子面单。
二.开通使用流程
1.快递电子面单
a. 和多家快递公司申请账号
b.分别进行接口对接
c.电子面单服务用户向快递网点申请开通及确认合作细节
2.菜鸟电子面单
a.向菜鸟提交对接申请
b.和菜鸟进行接口对接
c.电子面单服务用户向菜鸟申请账号
d.电子面单服务用户向快递网点申请开通及确认合作细节
3.快递鸟电子面单
a. 进入申请账号,获取专属的ID和KEY
b.和快递鸟进行接口对接
c.电子面单服务用户向快递网点申请开通及确认合作细节
接口类型较多,以下先附上调用方式,希望对大家有所帮助。后面将逐个对菜鸟电子面单、顺丰电子面单等接口调用方式做整理说明。
三.电子面单对接案例—快递鸟
1.接口描述
接口支持的消息接收方式:HTTPPOST
请求方法的编码格式(utf-8):&application/x-www-form-charset=utf-8&
API地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
2.请求系统级参数
RequestData
请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。
EBusinessID
商户ID,请在页面查看。
RequestType
请求指令类型:1007
数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。详细过程请查看Demo。
请求、返回数据类型:只支持JSON格式
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)。
3.接口参数
请求内容字段定义
用户自定义回调信息
CustomerName
电子面单客户账号(与快递网点申请)
CustomerPwd
电子面单密码
收件网点标识
ShipperCode
快递公司编码
LogisticCode
邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付
快递类型:1-标准快件
寄件费(运费)
收件人公司
电话与手机,必填一个
收件人邮编
ProvinceName
收件省(如广东省,不要缺少“省”)
收件市(如深圳市,不要缺少“市”)
ExpAreaName
收件区(如福田区,不要缺少“区”或“县”)
收件人详细地址
发件人公司
电话与手机,必填一个
发件人邮编
ProvinceName
发件省(如广东省,不要缺少“省”)
发件市(如深圳市,不要缺少“市”)
ExpAreaName
发件区(如福田区,不要缺少“区”或“县”)
发件人详细地址
上门取货时间段:&yyyy-MM-dd HH:mm:ss&格式化,本文中所有时间格式相同
物品总重量kg
件数/包裹数
物品总体积m3
AddServices
AddService
增值服务名称
增值服务值
CustomerID
客户标识(选填)
Commoditys
Goodsquantity
GoodsPrice
商品价格
GoodsWeight
商品重量kg
商品体积m3
IsReturnPrintTemplate
返回电子面单模板:0-不需要;1-需要
返回参数定义
EBusinessID
ShipperCode
快递公司编码
LogisticCode
MarkDestination
OriginCode
始发地区域编码
OriginName
始发地/始发网点
DestinatioCode
目的地区域编码
DestinatioName
目的地/到达网点
SortingCode
PackageCode
ResultCode
UniquerRequestNumber
PrintTemplate
面单打印模板
EstimatedDeliveryTime
订单预计到货时间yyyy-mm-dd
用户自定义回调信息
4.JAVA对接源码
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
import java.io.OutputStreamW
import java.io.UnsupportedEncodingE
import java.net.HttpURLC
import java.net.URL;
import java.net.URLE
import java.util.HashM
import java.util.M
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.security.MessageD
* 快递鸟电子面单接口
* @技术QQ:
* @技术QQ群:
* @see: /MiandanAPI.aspx
* @copyright: 深圳市快金数据技术服务有限公司
* ID和Key请到官网申请:/ServiceApply.aspx
public class KdGoldAPIDemo {
private String EBusinessID=&请到快递鸟官网申请/ServiceApply.aspx&;
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
private String AppKey=&请到快递鸟官网申请/ServiceApply.aspx&;
//请求url, 正式环境地址:http://api.kdniao.cc/api/Eorderservice
private String ReqURL=&http://testapi.kdniao.cc:8081/api/Eorderservice&;
* Json方式 电子面单
* @throws Exception
public String orderOnlineByJson() throws Exception{
String requestData= &{'OrderCode': '',& +
&'ShipperCode':'EMS',& +
&'PayType':1,& +
&'ExpType':1,& +
&'Cost':1.0,& +
&'OtherCost':1.0,& +
&'Sender':& +
&'Company':'LV','Name':'Taylor','Mobile':'','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'},& +
&'Receiver':& +
&'Company':'GCCUI','Name':'Yann','Mobile':'','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'},& +
&'Commodity':& +
&'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}],& +
&'Weight':1.0,& +
&'Quantity':1,& +
&'Volume':0.0,& +
&'Remark':'小心轻放',& +
&'IsReturnPrintTemplate':1}&;
Map&String, String& params = new HashMap&String, String&();
params.put(&RequestData&, urlEncoder(requestData, &UTF-8&));
params.put(&EBusinessID&, EBusinessID);
params.put(&RequestType&, &1007&);
String dataSign=encrypt(requestData, AppKey, &UTF-8&);
params.put(&DataSign&, urlEncoder(dataSign, &UTF-8&));
params.put(&DataType&, &2&);
String result=sendPost(ReqURL, params);
//根据公司业务处理返回的信息......
* @param str 内容
* @param charset 编码方式
* @throws Exception
@SuppressWarnings(&unused&)
private String MD5(String str, String charset) throws Exception {
MessageDigest md = MessageDigest.getInstance(&MD5&);
md.update(str.getBytes(charset));
byte[] result = md.digest();
StringBuffer sb = new StringBuffer(32);
for (int i = 0; i & result. i++) {
int val = result[i] & 0
if (val &= 0xf) {
sb.append(&0&);
sb.append(Integer.toHexString(val));
return sb.toString().toLowerCase();
* base64编码
* @param str 内容
* @param charset 编码方式
* @throws UnsupportedEncodingException
private String base64(String str, String charset) throws UnsupportedEncodingException{
String encoded = Base64.encode(str.getBytes(charset));
@SuppressWarnings(&unused&)
private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{
String result = URLEncoder.encode(str, charset);
* 电商Sign签名生成
* @param content 内容
* @param keyValue Appkey
* @param charset 编码方式
* @throws UnsupportedEncodingException ,Exception
* @return DataSign签名
@SuppressWarnings(&unused&)
private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception
if (keyValue != null)
return base64(MD5(content + keyValue, charset), charset);
return base64(MD5(content, charset), charset);
* 向指定 URL 发送POST方法的请求
* @param url 发送请求的 URL
* @param params 请求的参数集合
* @return 远程资源的响应结果
@SuppressWarnings(&unused&)
private String sendPost(String url, Map&String, String& params) {
OutputStreamWriter out =
BufferedReader in =
StringBuilder result = new StringBuilder();
URL realUrl = new URL(url);
HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// POST方法
conn.setRequestMethod(&POST&);
// 设置通用的请求属性
conn.setRequestProperty(&accept&, &*/*&);
conn.setRequestProperty(&connection&, &Keep-Alive&);
conn.setRequestProperty(&user-agent&,
&Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1;SV1)&);
conn.setRequestProperty(&Content-Type&, &application/x-www-form-urlencoded&);
conn.connect();
// 获取URLConnection对象对应的输出流
out = new OutputStreamWriter(conn.getOutputStream(), &UTF-8&);
// 发送请求参数
if (params != null) {
StringBuilder param = new StringBuilder();
for (Map.Entry&String, String& entry : params.entrySet()) {
if(param.length()&0){
param.append(&&&);
param.append(entry.getKey());
param.append(&=&);
param.append(entry.getValue());
System.out.println(entry.getKey()+&:&+entry.getValue());
System.out.println(&param:&+param.toString());
out.write(param.toString());
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), &UTF-8&));
while ((line = in.readLine()) != null) {
result.append(line);
} catch (Exception e) {
e.printStackTrace();
//使用finally块来关闭输出流、输入流
if(out!=null){
out.close();
if(in!=null){
in.close();
catch(IOException ex){
ex.printStackTrace();
return result.toString();
本文已收录于以下专栏:
相关文章推荐
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
电子面单样式
对接接口各家对比
各家合作流程对比
接口定义及说明
Request Params
系统级参数公共参数
Response Params
同类文章术语对于一般人...
http://blog.csdn.net/dong_/article/details/
[java] view
plain copy
java.io.BufferedR
java.io.IOE
java.io.InputStreamR...
电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。
接口支持的消息接收方式:HTTPPOST
请求方法的编码格式(utf-8):&application/x-www-form-charset=utf-8&
请求、返回数据类型:...
1.    Web Service 接口
1.1 接口方式说明和优点
在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端去调用第三方提供的接口时,大部分时候都是使用 W...
由面向对象转到API很多小伙伴们会出现这样或者那样的疑问,把继承、多态、封装放在面向对象里就会用,而把里面的理论放到API中就显得束手束脚,这里针对使用API接口类方法做一点解析
最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比较多。
          在网上搜索了以下,有很多这方面的教程,但大部分教程过于陈旧,而且描述的过于简单。...
他的最新文章
讲师:AI100
讲师:谢梁
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)当前位置: >>
基于JAVA的快递查询API接口调用代码示例
基于 java 的快递查询 API 接口调用代码示例? ?1、应用场景(1)电商网站用户打开“我的订单”时调用此 API 显示物流信息详情。 (2) 电商管理后台的物流系统, 客服在对账前查询所有运单的签收状态, 并追踪问题。 (3)每日调用次数限制不超过 3000 次,如超过该限制,请对接订阅推送 API。? ?2、是否需要授权要 Free 申请服务?3、接口描述/说明 ?(1)查询接口支持按照运单号查询(单个查询)。 (2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都 会返失败的信息。 如:EMS 物流单号应选择快递公司编码(EMS)查看快递公司编码 (3)返回的物流跟踪信息按照发生的时间升序排列。 (4)接口指令 1002。 (5) 接口支持的消息接收方式为 HTTP POST, 请求方法的编码格式(utf-8): &application/x-www-form-charset=utf-8&。 (6)请求系统级参数说明: 必 须 要 求参数名称类型说明请求内容需进行 URL(utf-8)编码。 请求内容 JSON R 格式,须和 DataType 一致。 EBusinessID String 商户 ID,请在我的服务页面查看。 R RequestType String 请求指令类型:1002 R 数据内容签名:把(请求内容(未编码)+AppKey) DataSign String 进行 MD5 加密,然后 Base64 编码,最后进行 R URL(utf-8)编码。详细过程请查看 Demo。 DataType String 请求、返回数据类型:2-json; O RequestData String?备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一 定条件下可选(Conditional)。 (7)接口地址: API ID:点击申请 API Key:点击申请 API 地址: http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx? ?4、接口参数(1)请求内容字段定义 参数 类型 说明 必须要求 OrderCode String 订单编号 O ShipperCode String 快递公司编码 R LogisticCode String 物流单号 R?(3)返回参数定义 参数名称 类型 说明 必须要 求 EBusinessID OrderCode ShipperCode LogisticCode Success Reason String 用户 ID String 订单编号 String 快递公司编码 String 物流运单号 Bool 成功与否 String 失败原因 物流状态:2-在途中,3-签收,4-问 State String 题件 Traces AcceptTime String 时间 Trace AcceptStation String 描述 Remark String 备注? ?R O R R R O R R R O5、示例(1)请求示例 JSON 格式 show sourceview source print? 1{ 2 3 4 5}&OrderCode&: &&, &ShipperCode&: &SF&, &LogisticCode&: &&(2)返回示例 JSON 格式 show sourceview source print? 01 没有物流轨迹的 02 { 03 &EBusinessID&: &1109259&, 04 &Traces&: [], 05 &OrderCode&: &&, 06 &ShipperCode&: &SF&, 07 &LogisticCode&: &&, 08 &Success&: false, 09 &Reason&: null 10 } 11 有物流轨迹的 12 { 13 &EBusinessID&: &1109259&, 14 &OrderCode&: &&, 15 &ShipperCode&: &SF&, 16 &LogisticCode&: &&, 17 &Success&: true, 18 &State&: 3, 19 &Reason&: null, 20 &Traces&: [ 21 { 22 &AcceptTime&: & 08:05:37&, &AcceptStation&: &正在派件..(派件人: 23 邓裕富,电话:)[深圳 市]&, 24 &Remark&: null 25 }, 26 { 27 &AcceptTime&: & 04:01:28&, &AcceptStation&: &快件在 深圳集散中 28 心 ,准备送往下一站 深圳 [深圳市]&, 29 &Remark&: null 30 }, 31 { 32 &AcceptTime&: & 01:41:06&, &AcceptStation&: &快件在 深圳集散中心 33 [深圳市]&, 34 &Remark&: null 35 }, 36 { 37 &AcceptTime&: & 20:18:58&, 38 &AcceptStation&: &已收件[深圳市]&, 39 &Remark&: null 40 }, 41 { 42 &AcceptTime&: & 20:55:28&, &AcceptStation&: &快件在 深圳 ,准备送 43 往下一站 深圳集散中心 [深圳市]&, 44 45 46 47 48 49 50 51 52 53 圳市]&, 市]&,&Remark&: null }, { &AcceptTime&: & 10:23:03&, &AcceptStation&: &派件已签收[深圳 &Remark&: null }, { &AcceptTime&: & 10:23:03&, &AcceptStation&: &签收人是:已签收[深 &Remark&: null } ]54 55 56 57 }?6、单号识别接口 Demo 工具.JAVA 版 DEMOimport java.io.BufferedR import java.io.IOE import java.io.InputStreamR import java.io.OutputStreamW import java.io.UnsupportedEncodingE import java.net.HttpURLC import java.net.URL; import java.net.URLE import java.security.MessageD import java.util.HashM import java.util.M /** * * 快递鸟单号识别接口 * * @技术 QQ 群:
* @copyright: 深圳市快金数据技术服务有限公司 * * * ID 和 Key 请到官网申请:/ServiceApply.aspx */public class KdApiOrderDistinguish {//DEMO public static void main(String[] args) { KdApiOrderDistinguish api = new KdApiOrderDistinguish(); try { String result = api.getOrderTracesByJson(&7&); System.out.print(result);} catch (Exception e) { e.printStackTrace(); } } //电商 ID private String EBusinessID=&请到快递鸟官网申请 /ServiceApply.aspx&; //电商加密私钥,快递鸟提供,注意保管,不要泄漏 private String AppKey=&请到快递鸟官网申请 /ServiceApply.aspx&; //请求 url private String ReqURL=&http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx&;/** * Json 方式 单号识别 * @throws Exception */ public String getOrderTracesByJson(String expNo) throws Exception{ String requestData= &{'LogisticCode':'& + expNo + &'}&;Map&String, String& params = new HashMap&String, String&(); params.put(&RequestData&, urlEncoder(requestData, &UTF-8&)); params.put(&EBusinessID&, EBusinessID); params.put(&RequestType&, &2002&); String dataSign=encrypt(requestData, AppKey, &UTF-8&); params.put(&DataSign&, urlEncoder(dataSign, &UTF-8&)); params.put(&DataType&, &2&); String result=sendPost(ReqURL, params);//根据公司业务处理返回的信息...... }/** * MD5 加密 * @param str 内容 * @param charset 编码方式 * @throws Exception */ @SuppressWarnings(&unused&) private String MD5(String str, String charset) throws Exception { MessageDigest md = MessageDigest.getInstance(&MD5&); md.update(str.getBytes(charset)); byte[] result = md.digest(); StringBuffer sb = new StringBuffer(32); for (int i = 0; i & result. i++) { int val = result[i] & 0 if (val &= 0xf) { sb.append(&0&); } sb.append(Integer.toHexString(val)); } return sb.toString().toLowerCase(); }/** * base64 编码 * @param str 内容 * @param charset 编码方式 * @throws UnsupportedEncodingException */ private String base64(String str, String charset) throws UnsupportedEncodingException{ String encoded = base64Encode(str.getBytes(charset)); }@SuppressWarnings(&unused&) private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{ String result = URLEncoder.encode(str, charset); } /** * 电商 Sign 签名生成 * @param content 内容 * @param keyValue Appkey * @param charset 编码方式 * @throws UnsupportedEncodingException ,Exception * @return DataSign 签名 */ @SuppressWarnings(&unused&) private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception { if (keyValue != null) { return base64(MD5(content + keyValue, charset), charset); } return base64(MD5(content, charset), charset); }/** * 向指定 URL 发送 POST 方法的请求 * @param url 发送请求的 URL * @param params 请求的参数集合 * @return 远程资源的响应结果 */ @SuppressWarnings(&unused&) private String sendPost(String url, Map&String, String& params) { OutputStreamWriter out = BufferedReader in = StringBuilder result = new StringBuilder(); try { URL realUrl = new URL(url); HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); // 发送 POST 请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // POST 方法 conn.setRequestMethod(&POST&); // 设置通用的请求属性 conn.setRequestProperty(&accept&, &*/*&); conn.setRequestProperty(&connection&, &Keep-Alive&); conn.setRequestProperty(&user-agent&, &Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1;SV1)&); conn.setRequestProperty(&Content-Type&, &application/x-www-form-urlencoded&); conn.connect(); // 获取 URLConnection 对象对应的输出流 out = new OutputStreamWriter(conn.getOutputStream(), &UTF-8&); // 发送请求参数 if (params != null) { StringBuilder param = new StringBuilder(); for (Map.Entry&String, String& entry : params.entrySet()) { if(param.length()&0){ param.append(&&&); } param.append(entry.getKey()); param.append(&=&); param.append(entry.getValue());//System.out.println(entry.getKey()+&:&+entry.getValue()); } //System.out.println(&param:&+param.toString()); out.write(param.toString()); } // flush 输出流的缓冲 out.flush(); // 定义 BufferedReader 输入流来读取 URL 的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream(), &UTF-8&)); S while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printStackTrace(); } //使用 finally 块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result.toString(); }private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };public static String base64Encode(byte[] data) { StringBuffer sb = new StringBuffer(); int len = data. int i = 0; int b1, b2, b3; while (i & len) { b1 = data[i++] & 0 if (i == len) { sb.append(base64EncodeChars[b1 &&& 2]); sb.append(base64EncodeChars[(b1 & 0x3) && 4]); sb.append(&==&); } b2 = data[i++] & 0 if (i == len) { sb.append(base64EncodeChars[b1 &&& 2]); sb.append(base64EncodeChars[((b1 & 0x03) && 4) | ((b2 & 0xf0) &&& 4)]); sb.append(base64EncodeChars[(b2 & 0x0f) && 2]); sb.append(&=&); } b3 = data[i++] & 0 sb.append(base64EncodeChars[b1 &&& 2]); sb.append(base64EncodeChars[((b1 & 0x03) && 4) | ((b2 & 0xf0) &&& 4)]); sb.append(base64EncodeChars[((b2 & 0x0f) && 2) | ((b3 & 0xc0) &&& 6)]); sb.append(base64EncodeChars[b3 & 0x3f]); } return sb.toString(); } }

我要回帖

更多关于 java支付宝接口对接 的文章

 

随机推荐