一、移動開票概述

百望移動開票對外開發接口,完成發票開具等相關功能。另外移動開票為了保證接口安全性以及數據傳輸安全性,分別使用了應用授權認證以及數據的訪問、傳輸采用百望特有的動態加密方式。

1.接口概述

1) 本接口用于Android第三方應用調用移動開票進行增值稅發票開具、上傳。

2) 接口設計為以JSON格式字符串作為參數傳遞。

3) 本接口適用于android4.4及以上系統。

4) 終端設備上需安裝移動開票App。

2.適用范圍

本接口規范僅適用移動開票。

二、接口調用

Activity接口調用主要分為3步:

1) 創建一個Activity遠程通訊的實例。

2) 初始化init(),并設置類型type。

3) 調用接口,將Json格式的字符串作為參數傳遞。

4) 等待接口返回值,處理相應業務。

5) 完成所有調用后關閉實例,回收資源并保證安全。

*注意:使用過程中,需開啟藍牙設備。

1.SDK依賴

sdk采用java開的,需要的運行在jdk1.6及以上,依賴一下jar包:

fastjson-1.1.33.jar

BestWonderKp.jar

2.SDK方法

表明接口開發中。

1) 獲取實例方法

在com.baiwang.bwkp路徑下:public BestWonderKp(Context context) {}

參數:

成功:無返回值

2) 調試模式

在com.baiwang.bwkp路徑下:public BestWonderKp(Context context) {}

參數:

成功:無返回值

*注:正式發布需關閉該模式。

3) 初始化init

在com.baiwang.bwkp 路徑下:public void init(int type) {}

參數:

成功:無返回值

4) 獲取應用授權

在com.baiwang.bwkp路徑下:public String getAppdata{}

成功:返回授權信息。

出錯:拋出異常

*注:1.開票參數中不帶發票抬頭信息,那么自動進入掃碼界面,掃碼解析抬頭二維碼或手動輸入發票抬頭。

      2.開票參數中帶發票抬頭信息,那么直接接入口令校驗界面,完成開票交易。

5) 獲取開票數據格式

在com.baiwang.bwkp路徑下:public String getKpdata(String kpdata ) {return kpdata;}

參數:

成功:返回開票數據格式

出錯:拋出異常

6) 關閉實例方法

在com.baiwang.bwkp 路徑下:public boolean release() {}

成功:true

出錯:拋出異常

7) 開票返回信息

在調用方activity的onActivityResult下:public boolean release() {}

bwkj_return_message返回信息為:{“code”:”0000”,”msg”:”交易成功”},具體使用請看代碼樣例。

成功:true

出錯:拋出異常

8) 開票地址設置方法

在com.baiwang.bwkp路徑下:public int setnetadress(String ip,String port,String server) {}

參數:

成功:0 表示成功 -1或其他 表示失敗

出錯:拋出異常

3.代碼樣例

清單文件配置:

<uses-permission android:name="com.cpos.invoice.permission.INVOKE" />

<meta-data android:name="BAIWANG_KP_APPID" android:value="百望云提供的實際ID"></meta-data>

<meta-data android:name="BAIWANG_KP_APPSERCRET" android:value="百望云提供的實際秘鑰"></meta-data>

代碼示例:

private BestWonderKp beWonderKp;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

beWonderKp = new BestWonderKp(this);

beWonderKp.init(1);

}

public void start() throws Exception{

List<RemoteMxinfo> mxInfos = new ArrayList<RemoteMxinfo>();

mxInfos.add(new RemoteMxinfo("蘋果", "紅富士", "斤", 10.00, "1", "", 10.00, 0, 0, "", "","", "", ""));

RemoteFpinfoSimkey fpinfo = new RemoteFpinfoSimkey("", "", "", "", "","123456789", "發票抬頭", "", "", "","", "1", "", mxInfos);

String jsonString = JSON.toJSONString(fpinfo);

Intent i = new Intent(BestWonderKp.actionName);

Bundle b = new Bundle();

b.putString("appdata",beWonderKp.getAppdata())

b.putString("kpdata",beWonderKp.getKpdata(jsonString));

i.putExtras(b);

startActivityForResult(i, REQUST_CODE);

}

@Override

protected void onActivityResult(int arg0, int arg1, Intent arg2) {

super.onActivityResult(arg0, arg1, arg2);

if(arg0 == REQUST_CODE){

if(arg1 == Activity.RESULT_OK){

Bundle b = arg2.getExtras();

String state = b.getString("bwkj_return_message", "");

Log.e("state", state);

}

}

}

4.數據基本格式

1) 開票交易數據格式

{

"bmb_bbh": "",

"bz": "",

"hjje": 50,

"hjse": 0,

"jshj": 50,

"jshjdx": "",

"jylsh": "1234567890123456",

"mxinfos": [{

"dj": 50,

"ggxh": "",

"hs": 0,

"je": 50,

"jldw": "",

"lslbs": "",

"se": 0,

"sl": "1",

"spbm": "",

"spmc": "",

"spsl": "",

"yhzcbs": "",

"zxbm": "",

"zzstsgl": ""

}],

"packageName": "",

"simKey_caPin": "",

"simKey_phone": "",

"simKey_sksbkl": "",

"spfDm": "",

"spfdz": "",

"spfemail": "",

"spfmc": "",

"spfphone": "",

"spfyhmc": "",

"spfyhzh": "",

"status": "",

"token": "",

"yfp_dm": "",

"yfp_hm": ""

}

2) 錯誤碼對照表

今天开的什么特马 结果 河北20选五的走势图 pk10技巧论坛 北京赛车pk10网投 重庆幸运农场挂机 血流麻将倍数说明 李逵劈鱼输了几万 新渔彩捕鱼下载 意甲客场最新积分榜 河北20选5奖结果查询 15选5浙走势图