<acronym id="ye54p"><strong id="ye54p"></strong></acronym>
      无码中文字幕天天天天爽
      幫助文檔

      [TOC]

      接入準備

      Java Demo 工程地址

      配置

      開發環境需求

      目前只支持Android Studio Demo

      權限配置

      配置權限,默認權限已經包含

      ```xml

      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
      <uses-permission android:name="android.permission.SEND_SMS" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.READ_PHONE_STATE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.WRITE_SETTINGS" />
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.GET_TASKS" />
      <uses-permission android:name="android.permission.READ_SMS" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
      

      ``` 如果需要額外權限,請在module appAndroidManifest.xml 中添加

      將快發提供的4.0sdk加入到你的項目中

      1. 請在項目目錄下的build.gradle中加入sdk庫的倉庫位置maven { url "https://github.com/KuaiFaMaster/kfsdk/raw/master" }
      2. 在app的build.gradle文件的dependencies中加入依賴的庫
        compile 'com.kf.framework:kf-utils:latest.integration@aar'
        compile 'com.kf.framework:volleyplus:latest.integration@aar' compile 'net.gameworks.gameplatform:kuaifa-sdk-login-pay-KFZS:latest.integration@aar'
        compile 'com.kf.framework:kfsdk:latest.integration@aar'

      ```xml

      allprojects { repositories { maven { url "https://github.com/KuaiFaMaster/kfsdk/raw/master" } jcenter() } }

      java dependencies { compile 'com.kf.framework:kfsdk:latest.integration@aar' compile 'com.kf.framework:kf-utils:latest.integration@aar' compile 'com.kf.framework:volleyplus:latest.integration@aar' compile 'net.gameworks.gameplatform:kuaifa-sdk-login-pay-KFZS:latest.integration@aar'

      } ```

      Application配置

      請在module appAndroidManifest.xml 中按如下配置

      ```xml <application android:name="com.kf.framework.KFApplication" android:allowBackup="true">

      ```

      如果有自定義Application請在自定義的Application繼承KFApplication

      ```java @Override public void onCreate() { super.onCreate();

      @Override public void attachBaseContext(Context base) { super.attachBaseContext(base);

      @Override public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); } ```

      AndroidManifest.xml

      添加meta-data 文件

          <meta-data
              android:name="HJR_CHANNEL"
              android:value="\ 0103" />
          <meta-data
              android:name="KF_GAMEKEY"
              android:value="xxxxxxx" />
      

      注:KF_GAMEKEY 的值 需要向快發官方申請參數

      配置參數

      1. 從快發提供的demo中拷貝assets目錄下的developer.properties到你的游戲工程中assets目錄或者在assets目錄新建developer.properties文件并拷貝如下示例文件的內容到新建的文件中
      2. 設置HJR_GAMEKEY的值為你從快發申請的值(聯系商務)
      3. 開啟快發的日志請將debugMode設置為0,關閉設置為1

      developer.properties示例文件內容

      [static]

      快發gameKey,自己在快發官網申請或聯系快發商務獲取

      HJR_GAMEKEY = c39697dd79df766cbf0834e1471cc1ae [dynamic]

      debugMode = 0 //#日志開關 0:打開日志 1:關閉日志

      channel = matrix

      PluginUser= UserKF

      PluginIAP= PayKF

      PluginStatistic= StatisticKF****

      screen_oriention = 1 //0:橫屏 1:豎屏

      PluginIsKF=1 //0 開啟快發官方SDK 1 關閉開發官方SDK 測試支付時 可以設置為1

      Activity生命周期函數

      ```java**** @Override protected void onResume() { SDKPluginWrapper.onResume(); super.onResume(); }

      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          SDKPluginWrapper.onActivityResult(requestCode, resultCode, data);
          super.onActivityResult(requestCode, resultCode, data);
      }
      
      @Override
      protected void onPause() {
          SDKPluginWrapper.onPause();
          super.onPause();
      }
      
      @Override
      protected void onRestart() {
          SDKPluginWrapper.onRestart();
          super.onRestart();
      }
      
      @Override
      public void onBackPressed() {
          SDKPluginWrapper.onRestart();
          super.onBackPressed();
      }
      
      @Override
      protected void onNewIntent(Intent intent) {
          SDKPluginWrapper.onNewIntent(intent);
          super.onNewIntent(intent);
      }
      
      @Override
      protected void onStop() {
          SDKPluginWrapper.onStop();
          super.onStop();
      }
      
      @Override
      protected void onDestroy() {
          SDKPluginWrapper.onDestroy();
          super.onDestroy();
      }
      
      @Override
      protected void onConfigurationChanged(Configuration newConfig){
          SDKPluginWrapper.onConfigurationChanged(newConfig);
          super.onConfigurationChanged(newConfig);
      }
      

      ```

      SDK初始化

      初始化都在 Activity 的方法 onCreate

      java KFSDK.getInstance().init(this);

      init() 要求傳入上下文是Activity的上下文

      SDK登陸

      java KFSDKUser.getInstance().login();

      SDK注銷

      java KFSDKUser.getInstance().logout();

      SDK退出

      java KFSDKUser.getInstance().exit();

      SDK切換賬號

      java KFSDKUser.getInstance().changeAccout();

      查詢實名狀態

      java KFSDKUser.getInstance().getRealnameStatus();

      提交實名信息

      java KFSDKUser.getInstance().authRealName();

      用戶模塊調用接口之后獲取回調信息

      java KFSDKUser.getInstance().setListener(new KFSDKListener() { @Override public void onCallBack(int code, String msg) { //這里響應用戶模塊的回調 } } );

      用戶模塊回調參數表

      |參數|描述| |:--|:--| |UserWrapper.ACTION_RET_INIT_SUCCESS|渠道SDK初始化成功|
      |UserWrapper.ACTION_RET_INIT_FAIL|渠道SDK初始化失敗|
      |UserWrapper.ACTION_RET_LOGIN_SUCCESS|登錄成功|
      |UserWrapper.ACTION_RET_LOGIN_FAIL|登錄失敗|
      |UserWrapper.ACTION_RET_LOGOUT_SUCCESS|登出成功|
      |UserWrapper.ACTION_RET_LOGOUT_FAIL|登出失敗|
      |UserWrapper.ACTION_RET_CHANGE_ACCOUNT_SUCCESS|切換帳戶成功|
      |UserWrapper.ACTION_RET_CHANGE_ACCOUNT_FAIL|切換帳戶失敗|
      |UserWrapper.ACTION_RET_EXIT_SUCCESS|退出成功|
      |UserWrapper.ACTION_RET_EXIT_FAIL|退出失敗|
      |UserWrapper.ACTION_RET_AUTH_REALNAME_FAIL|實名失敗|
      |UserWrapper.ACTION_RET_AUTH_REALNAME_SUCCESS|獲取實名信息成功(status:0未實名,1未成年,2成年; id_number:身份證號; real_name:姓名)|

      支付模塊接入

      調用支付

      ```java HashMap<String, Object> params = new HashMap<String, Object>(); params.put(Params.Pay.KEY_AMOUNT, "1");//購買商品金額
      params.put(Params.Pay.KEY_ORDER_NO, "");//訂單號
      params.put(Params.Pay.KEY_SERVER_ID, "1");//服務器ID
      params.put(Params.Pay.KEY_PRODUCT_ID, "1");//購買商品的商品ID
      params.put(Params.Pay.KEY_PRODUCT_NUM, "1");//購買商品的數量
      params.put(Params.Pay.KEY_GAMEEXTEND, "");//額外參數,沒有傳""
      params.put(Params.Pay.KEY_NOTIFY_URL, "");//應用方提供的支付結果通知uri,沒有先傳任意測試字符串
      params.put(Params.Pay.KEY_CONIN_NAME, "金幣");
      params.put(Params.Pay.KEY_RATE, "10");
      params.put(Params.Pay.KEY_ROLE_ID, "1");
      params.put(Params.Pay.KEY_ROLE_NAME, "11");
      params.put(Params.Pay.KEY_ROLE_LEVEL, "1");
      params.put(Params.Pay.KEY_PRODUCT_NAME, "商品名字");
      params.put(Params.Pay.KEY_SERVER_NAME, "dd");//服務器ID

          KFSDKPay.getInstance().pay(params);
      

      ```

      根據訂單號查詢訂單狀態

      java String orderId = "1610139300002000"; HashMap<String, Object> params = new HashMap<String, Object>(); params.put(Params.Pay.KEY_PAY_ORDER_ID, orderId); KFSDKPay.getInstance().getOrderInfo(params);

      支付模塊調用接口之后獲取回調信息

      java KFSDKPay.getInstance().setListener(new KFSDKListener() { @Override public void onCallBack(int code, String msg) { //這里響應支付的結果 } } );

      支付模塊參數回調表

      |參數|描述| |:--|:--| |PayWrapper.PAYRESULT_SUCCESS|支付成功|
      |PayWrapper.PAYRESULT_FAIL|支付失敗|
      |PayWrapper.PAYRESULT_CANCEL|支付取消|
      |PayWrapper.PAYRESULT_NETWORK_ERROR|支付網絡錯誤|

      響應數據

      模塊數據是一個個響應式變量,具體參照對應的對象表格

      用戶模塊響應數據

      |變量|類型|描述| |:--|:--|:--| |KFSDKUser.getInstance().getOpenId();|String|OpenId|
      |KFSDKUser.getInstance().getUserId();|String|UserId|
      |KFSDKUser.getInstance().getCid();|String|cId|
      |KFSDKUser.getInstance().getToken();|String|Token|
      |KFSDKUser.getInstance().getUserName();|String|UserName|

      支付模塊響應數據

      |變量|類型|描述| |:--|:--|:--| |KFSDKPay.getInstance().getOrderNo();|String|訂單號|
      |KFSDKPay.getInstance().getOrderStatus();|int|支付狀態 0為成功,其他為失敗|
      |KFSDKPay.getInstance().getOrderStatusMessage();|String|支付消息|

      統計功能接入(必接的三個統計接口)

      注:所有調用統計接口的參數都不能直接傳中文,如是中文則需要base64encode處理一次

      進入游戲統計(enterGame)

      java
      HashMap<String, String> params = new HashMap<>();
      //用戶標識:只用添加用戶ID即可
      params.put(Params.Statistic.KEY_ROLE_USERMARK, KFSDKUser.getInstance().userId + "@" + KFSDKUser.getInstance().getChannel());
      params.put(Params.Statistic.KEY_ROLE_ID, testRoleID);
      params.put(Params.Statistic.KEY_ROLE_SERVER_ID, testServerID);
      params.put(Params.Statistic.KEY_ROLE_NAME, testRoleName);
      // 服務器名稱
      params.put(Params.Statistic.KEY_ROLE_SERVER_NAME, testServerName);
      // 角色等級
      params.put(Params.Statistic.KEY_ROLE_LEVEL, testRoleLevel);
      //角色等級
      params.put(Params.Statistic.KEY_ROLE_GRADE, testRoleLevel);
      KFSDKUser.getInstance().enterGame(params);

      統計升級(recordRoleUp)

      java
      HashMap<String, String> params = new HashMap<String, String>();
      params.put(Params.Statistic.KEY_ROLE_USERMARK, KFSDKUser.getInstance().getUserId() + "@"+KFSDKUser.getInstance().getChannel());
      params.put(Params.Statistic.KEY_ROLE_ID, "1");
      //角色賬號
      params.put(Params.Statistic.KEY_ROLE_USERID, "lewan10086");
      // 角色等級
      params.put(Params.Statistic.KEY_ROLE_LEVEL, "15");
      // 服務器ID
      params.put(Params.Statistic.KEY_ROLE_SERVER_ID, "2");
      // 角色昵稱
      params.put(Params.Statistic.KEY_ROLE_NAME, "lewan10086");
      //角色等級
      params.put(Params.Statistic.KEY_ROLE_GRADE, "10");
      // 服務器名稱
      params.put(Params.Statistic.KEY_ROLE_SERVER_NAME, "服務器名稱");
      KFSDKStatistic.getInstance().recordRoleUp(params);

      統計角色創建(recordRoleCreate)

      java
      HashMap<String, String> params = new HashMap<String, String>();
      params.put(Params.Statistic.KEY_ROLE_USERMARK, KFSDKUser.getInstance().getUserId() + "@"+KFSDKUser.getInstance().getChannel());
      //角色id
      params.put(Params.Statistic.KEY_ROLE_ID, "1222");
      // 角色賬號
      params.put(Params.Statistic.KEY_ROLE_USERID, "lewan10086");
      // 角色等級
      params.put(Params.Statistic.KEY_ROLE_LEVEL, "15");
      // 角色昵稱
      params.put(Params.Statistic.KEY_ROLE_NAME, "角色昵稱");
      // 服務器id
      params.put(Params.Statistic.KEY_ROLE_SERVER_ID, "2");
      // 服務器名稱
      params.put(Params.Statistic.KEY_ROLE_SERVER_NAME, "服務器名稱");
      KFSDKStatistic.getInstance().recordRoleCreate(params);

      无码中文字幕天天天天爽,91热久久免费频精品99欧美,开心五月欧美激情亚洲综合页_首页