INAPP

1. Login API :

接口為您提供了我們的登入服務,可以讓使用者透過facebook帳號登入我們的服務,在您呼叫此API後,可以得到

使用者的UUID(Unique UID為使用者在平台的唯一ID),以下就是API的呼叫方式

  直接呼叫API,API將會反饋您回傳值如下

UUID    String    (玩家在平台的UUID)

  您可以參考下列的案例,進行作業

Example:
InAppSession.login(this, newInAppSession.ISessionStatusCallback(){
            InAppBilling.mHelper.dispose();
            publicvoid success() {
                // TODO Auto-generated method stub
                // 在此可取得本次登入的auth值,建議可將此值透過平台提供的server-to-server 驗證 API (appLoginVerify API)進行驗證
                String auth = com.inapp.LoginActivity.getAuth();
                Log.d("auth", auth);

                InAppSession.getInAppUser(newInAppRequest.IRequestStatusCallback(){
                    @Override
                    publicvoidonComplete(JSONObject data) {
                        // TODO Auto-generated method stub
                        try {
                            Log.d("uid", data.getString("uid"));
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }

                    @Override
                    publicvoid fail(JSONObject data) {
                        // TODO Auto-generated method stub
                        try {
                            Log.d("ERR_CODE", data.getString("ERR_CODE"));
                            Log.d("ERR_MSG", data.getString("ERR_MSG"));
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }

                    @Override
                    publicvoid exception(JSONException e) {
                        // TODO Auto-generated method stub
                        
                    }
                    
                });
            }

            @Override
            publicvoid fail(JSONObject data) {
                // TODO Auto-generated method stub
                try {
                    Log.d("ERR_CODE", data.getString("ERR_CODE"));
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            @Override
            publicvoid exception(Exception e) {
                // TODO Auto-generated method stub
                e.printStackTrace();
            }
            
        });

2. appLoginVerify API : 

此接口為您提供了我們登入的驗證服務,驗證的型式為Server-to-Server (auth值驗證),以下就是API的呼叫方式

 呼叫API時請帶入以下參數

apiKey        String    (開發商apiKey)
auth        String    (使用者登入auth值)
ts            String    (時間戳記)     
hash        String    (驗證值hash = SHA256[auth+apiKey+secret+ts] 以此方式產生,secret為secret key 請洽詢我方窗口提供)

API將回傳您

ERR_CODE    INT        (錯誤碼)
ERR_MSG    String    (錯誤訊息)
uid            String    (玩家在平台的UUID)

您可以參考下列的案例,進行作業

以post的方式將上述參數傳至
http://inapp.com.tw/api/fbLogin/appLoginVerify

3. pointDeductAPI :

此接口為您提供了我們平台扣點服務,呼叫後扣除該玩家的平台點數,且由平台執行(3-1),並取得消費點數與交易序號,以下就是

API的呼叫方式

呼叫API時請帶入以下參數

point            String    (欲扣除的點數)
productName    String    (商品名稱)
serveId              Int    (服務器序號,1为1服,2为2服)
extraInfo        String    (開發商自訂參數,此參數會在完成交易後,回傳至BillingCallbackURI)

API將回傳您

tradeId            String    (交易序號)

您可以參考下列的案例,進行作業

Example:
Map<String, String>params  =newHashMap<String, String>();
params.put("point", "5");
params.put("productName", "勇敢藥水");
params.put("extraInfo", "5");
InAppBilling.pointDeduct(this, params, newInAppRequest.IRequestStatusCallback()
{
    @Override
    publicvoidonComplete(JSONObject data) {
        // TODO Auto-generated method stub
        try {
            Log.d("tradeId", data.getString("tradeId"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Override
    publicvoid fail(JSONObject data) {
        // TODO Auto-generated method stub
        try {
            Log.d("ERR_CODE", data.getString("ERR_CODE"));
            Log.d("ERR_MSG", data.getString("ERR_MSG"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}
    @Override
    publicvoid exception(JSONObject data) {
        // TODO Auto-generated method stub
Log.d("Exception", e.getMessage());
}
});

3-1. 回傳交易結果至開發商BillingCallbackURI(交易回傳網址) :

此BillingCallbackURI為對我方申請應用時,需先行提交一個交易回傳網址提供給我方窗口,窗口會為您設定至平台,並且在

pointDeductAPI交易完成後進行呼叫,以下為API的呼叫方式

呼叫API時請帶入以下參數

tradeId        String    (平台交易序號)
point        INT        (交易扣除點數)
extraInfo    String    (開發商自訂參數)
ts            String    (時間戳記)
hash        String    (驗證值hash = SHA256[auth+apiKey+secret+ts] 以此方式產生,secret為secret key 請洽詢我方窗口提供)

您可以參考下列的案例,進行作業

以post的方式將上述參數傳至您所提供的BillingCallbackURI(交易回傳網址)

4. Google Play In App PurchaseAPI:

此接口為您提供了Google play IAP遊戲內購買的服務,呼叫後引導玩家至Google Play進行消費,並於完成後由平台執行3-1,通知遊戲伺服器此次消費點數與交易序號,以下就是API的呼叫方式

呼叫API時請帶入以下參數

iabKey            String    (於Google Play 產生的交易金鑰,請洽詢我方窗口提供)
productId        String    (於Google Play 申請的產品代碼,請洽詢我方窗口提供)
extraInfo        String    (開發商自訂參數,此參數會在完成交易後,回傳至BillingCallbackURI,若不需自定參數請傳空字串)
serveId              Int    (服務器序號,1为1服,2为2服)

API將回傳您

tradeId            String    (交易序號)

您可以參考下列的案例,進行作業

Example:
Map<String, Object>params  =newHashMap<String, Object>();
                            params.put("iabKey", "Your IabKey");
                            params.put("productId", "Your ProductId");
                            params.put("extraInfo", "demo");
                            
InAppBilling.goolePlayBilling(MainActivity.this, params, newInAppRequest.IRequestStatusCallback() {
                                
@Override
    publicvoidonComplete(JSONObject data) {
        // TODO Auto-generated method stub
        try {
            Log.d("tradeId", data.getString("tradeId"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
                                    
    }
                                
    @Override
    publicvoid fail(JSONObject data) {
        // TODO Auto-generated method stub
        try {
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
                                
    @Override
    publicvoid exception(JSONException e) {
        // TODO Auto-generated method stub                    
    }
});

備註:在呼叫的Activity中加入以下兩個method
@Override
    publicvoidonActivityResult(intrequestCode, intresultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        
        // Pass on the activity result to the helper for handling
if (!InAppBilling.mHelper.handleActivityResult(requestCode, resultCode, data)) {
// not handled, so handle it ourselves (here's where you'd
// perform any handling of activity results not related to in-app
// billing...
super.onActivityResult(requestCode, resultCode, data);
    }
else {
Log.d("MSG", "onActivityResult handled by IABUtil.");
    }
    }
    
    @Override
    publicvoidonDestroy()
    {
        if (InAppBilling.mHelper != null) InAppBilling.mHelper.dispose();
        InAppBilling.mHelper = null;
        super.onDestroy();
    }

5.IapBiling API:

此接口為您提供了台哥大遊戲內購買的服務,呼叫後引導玩家至IapBiling進行消費,並於完成後由平台執行3-1,通知遊戲伺服器此次消費點數與交易序號,以下就是API的呼叫方式

呼叫API時請帶入以下參數

point        String    (欲扣除的點數)
productId    String    (商品名id)
extraInfo    String    (開發商自訂參數,此參數會在完成交易後,回傳至BillingCallbackURI)
ts            String    (時間戳記)
hash        String    (驗證值hash = SHA256[auth+apiKey+secret+ts] 以此方式產生,secret為secret key 請洽詢我方窗口提供)
uid         String  (玩家在平台的UUID)
chennelId  string  厂商的渠道id(根据需要,可为空)
serveId      Int    (服務器序號,1为1服,2为2服)

備註:所傳參數key請用IapBiling定義的變量名

您可以參考下列的案例,進行作業 ,如果AndroidManifest.xml的权限没有以下配置请添加:
<uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />

Xml 配置Activity 时加上android:configChanges="orientation",避免横切屏重新加载页面。
如:
<activity android:name=".IAP"
                  android:label="@string/app_name"
                  android:configChanges="orientation">
另外在调用接口的Activity里面加上如下代码:
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(iapBiling!=null)iapBiling.notifyOrientationChanged();
    }

呼叫代码例子:
HashMap<String,String> params = new HashMap<String, String>();
        params.put(IapBiling.PARAMS_POINT, "0");
        params.put(IapBiling.PARAMS_CHANNEL_ID, "0");
        params.put(IapBiling.PARAMS_CONTENT_ID, "GAO010000000010");
        params.put(IapBiling.PARAMS_TS, System.currentTimeMillis()+"");
        params.put(IapBiling.PARAMS_INAPP_USER_ID, "1010");
        params.put(IapBiling.PARAMS_EXTRA_INFO, "開發商自訂參數");
        //hash String    (驗證值hash = SHA256[auth+apiKey+secret+ts] 以此方式產生,secret為secret key 請洽詢我方窗口提供)
        params.put(IapBiling.PARAMS_HASH, "444");
        iapBiling = new IapBiling(this, params,new IRequestStatusCallback() {
            @Override
            public void onComplete(JSONObject data) {
                Log.d("iap onComplete", data.toString());
            }
            
            @Override
            public void fail(JSONObject data) {
                Log.d("iap fail", data.toString());    
            }
            @Override
            public void exception(JSONException e) {

                Log.d("iap exception", e.getMessage());
            }
        });
交易成功將返回如:{"ERR_CODE":"1","resultMsg":"u5145u503cu6210u529f"}
ERR_CODE不為1,將返回失敗的原因。

6. publishTapjoyADInstallAsync API:

此接口為串接Tapjoy廣告系統的服務,用於統計使用者導入安裝等相關訊息,會由平台窗口於平台後端建入專屬金鑰,以下就是API的呼叫方式

APP起動時的第一個Activity onCreate()內進行login並取得使用者UID後,呼叫API 如下方範例圖,請務必照這順序進行

Example:可參照下方附圖,並依照你所定義的class名稱進行呼叫
InAppAD.publishTapjoyADInstallAsync(getApplicationContext());

完成呼叫後,可與我方窗口洽詢,是否成功計數

7. publishInMobiADInstallAsync API:

此接口為串接inmobi廣告系統的服務,用於統計使用者導入安裝等相關訊息,會由平台窗口於平台後端建入專屬金鑰,以下就是API的呼叫方式

在APP起動時的第一個Activity onCreate()內進行login並取得使用者UID後,呼叫API 如下方範例圖,請務必照這順序進

Example:可參照下方附圖,並依照你所定義的class名稱進行呼叫
InAppAD.publishTapjoyADInstallAsync(getApplicationContext());

完成呼叫後,可與我方窗口洽詢,是否成功計數

8. publishFacebookADInstallAsync API:

此接口為串接Facebook廣告系統的服務,用於統計使用者導入安裝等相關訊息,會由平台窗口於平台後端建入專屬金鑰,以下就是

API的呼叫方式

APP起動時的第一個Activity onCreate()內進行login並取得使用者UID後,呼叫API 如下方範例圖,請務必照這順序進行

Example:可參照下方附圖,並依照你所定義的class名稱進行呼叫
InAppAD.publishTapjoyADInstallAsync(getApplicationContext());

完成呼叫後,可與我方窗口洽詢,是否成功計數

9. 登陆游戏后,点击服务分区调用的接口:

此接口為您提供了我們記錄玩家入口伺服器分區資訊服務,驗證的型式為Server-to-Server (auth值驗證),以下就是API的呼叫方式

呼叫API時請帶入以下參數

apiKey        String    (開發商apiKey)
uid            String    (玩家在平台的UUID)
imei        String    (玩家手机全球唯一码)
ts            String    (時間戳記)     
auth        String    (使用者登入auth值)
serveId      Int    (服務器序號,1为1服,2为2服)   
hash        String    (驗證值hash = SHA256[auth+apiKey+secret+ts] 以此方式產生,secret為secret key 請洽詢我方窗口提供)

 API將回傳您

ERR_CODE    INT        (錯誤碼)
ERR_MSG    String    (錯誤訊息)

 您可以參考下列的案例,進行作業

ERR_CODE    INT        (錯誤碼)
ERR_MSG    String    (錯誤訊息)

以上若有相關問題,請連繫我們的窗口,我們將盡快為您服務

連繫窗口 : 王毅
QQ    : 2541623933
Email:yi.wang@cregame.net
電話:+86 755 86607479
手机:18907580817
原文地址:https://www.cnblogs.com/jthb/p/3279316.html