Skip to content
dongwenqiang edited this page Apr 30, 2014 · 5 revisions

337 Mobile SDK Android版集成文档


  1. 将下载的SDK包解压,其中Mobile337V2Lib工程为SDK的核心library工程,引入该工程:

    引入lib工程

  2. 如需使用Facebook登录功能,则还需要引入Facebook的SDK:Facebook SDK

  3. 添加权限:

     <!-- 基本权限 -->
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     
     <!-- GoogelPlay内购功能 -->
     <uses-permission android:name="com.android.vending.BILLING" />
    
     <!-- Fotumo手机支付功能 -->
     <uses-permission android:name="android.permission.RECEIVE_SMS" />
     <uses-permission android:name="android.permission.SEND_SMS" />
     <uses-feature android:name="android.hardware.telephony" android:required="false" />
    
     <!-- 韩国Tstore付款渠道 -->
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
     <uses-permission android:name="com.tmoney.vending.INBILLING"/>
     <permission android:name="com.tmoney.vending.INBILLING"/>
     
     <!-- 韩国KT平台 -->
     <uses-permission android:name="android.permission.GET_TASKS"/> 
    

    基本权限必须添加,其他权限根据运营需求可选

  4. 添加Activity、MetaData等其他数据:

     <!-- 基础功能 -->
     <activity
     	android:name="com.web337.android.widget.PopuView"
     	android:theme="@style/Theme.Translucent"
     	android:configChanges="orientation|keyboardHidden|screenSize"
     	android:windowSoftInputMode="adjustResize"/>
     <activity
     	android:name="com.web337.android.pay.PayCoreMobileActivity"
     	android:configChanges="orientation|keyboardHidden|screenSize"
     	android:theme="@style/mobile337transparent">
     </activity>
     <activity
     	android:name="com.web337.android.pay.PayShowPackagesActivity"
     	android:configChanges="orientation|keyboardHidden|screenSize"
     	android:theme="@style/mobile337transparent">
     </activity>
     <activity
     	android:name="com.web337.android.ticket.TicketCoreActivity"
     	android:configChanges="orientation|keyboardHidden|screenSize"
     	android:windowSoftInputMode="adjustResize" >
     </activity>
     <activity
     	android:name="com.web337.android.widget.Web"
     	android:configChanges="orientation|keyboardHidden|screenSize"
     	android:launchMode="singleTask" >
     </activity>
     <activity
     	android:name="com.web337.android.user.UserPage"
     	android:theme="@style/mobile337user" >
     </activity>
     <activity
     	android:name="com.web337.android.user.GoogleAcountLogin"
     	android:configChanges="orientation|keyboardHidden|screenSize" >
     </activity>
     <activity
     	android:name="com.facebook.LoginActivity"
     	android:theme="@android:style/Theme.Translucent" />
     	
     <meta-data
     	android:name="com.facebook.sdk.ApplicationId"
     	android:value="\ 220782057940018" />
     	
     <receiver
     	android:name="com.web337.android.Tracker"
     	android:exported="true" >
     	<intent-filter>
     		<action android:name="com.android.vending.INSTALL_REFERRER" />
     	</intent-filter>
     </receiver>
     	
     <!-- Fortumo手机支付 -->	
     <activity
     	android:name="com.fortumo.android.FortumoActivity"
     	android:theme="@android:style/Theme.Translucent.NoTitleBar" >
     </activity>
     <activity
     	android:name="com.web337.android.pay.fortumo.FortumoActivity"
     	android:configChanges="orientation|keyboardHidden|screenSize"
     	android:theme="@android:style/Theme.Translucent.NoTitleBar" >
     </activity>
     <receiver android:name="com.fortumo.android.BillingSMSReceiver" >
     	<intent-filter>
     		<action android:name="android.provider.Telephony.SMS_RECEIVED" >
     		</action>
     	</intent-filter>
     </receiver>
     <service android:name="com.fortumo.android.FortumoService" />
     <service android:name="com.fortumo.android.StatusUpdateService" />
     
     <!-- 韩国Tstore支付渠道 -->
     <activity
     	android:name="com.skplanet.dodo.IapWeb"
     	android:configChanges="orientation|keyboardHidden|locale|screenSize|layoutDirection"
     	android:excludeFromRecents="true"
     	android:windowSoftInputMode="stateHidden"/>
     <meta-data android:name="iap:api_version" android:value="1"/>
     
     <!-- 韩国KT平台 -->
     <service android:name="com.kt.olleh.inapp.TimerService" />
     <activity android:name="com.web337.android.pay.kt.KTActivity"
         android:configChanges="orientation|keyboardHidden|screenSize"
         android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
         
     <!-- 韩国Naver平台 -->
     <activity android:name="com.web337.android.pay.naver.NaverActivity"
         android:configChanges="orientation|keyboardHidden|screenSize"
         android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
    

    screenSize添加时如果出现错误,请更改targetSdkVersion为13以上即可

    com.facebook.sdk.ApplicationId如果不使用默认的220782057940018,可以替换为游戏自己的ID,需要事先将应用secret配置在337的后台

  5. 生命周期管理

    在主Activity的onCreate方法中,调用:

     com.web337.android.func.FuncCore.onCreate(this);
    

    在onStart方法中,调用:

     com.web337.android.func.FuncCore.onStart(this);
    

    在onStop方法中,调用:

     com.web337.android.func.FuncCore.onStop(this);
    

    在onDestroy方法中,调用:

     com.web337.android.func.FuncCore.onDestroy(this);
    
  6. 设置支付回调方法:

     com.web337.android.func.FuncCore.setPayCallback(new FuncCore.PayCallback() {
     	@Override
     	public void onInitFinish(Msg msg) {
             if(msg.isSuccess()){
                     /*初始化成功*/
             }else{
                     /*初始化失败*/
             }
     	}
     	@Override
     	public void onComplete(Order o) {
             /*付款成功*/
     	}
     	@Override
     	public void onCancel() {
             /*取消支付*/
     	}
     	@Override
     	public void onFailed(Msg msg) {
             /*支付失败*/
     	}
     });
    
  7. 用户登录:

     final FuncCore.LoginCallback logincallback = new FuncCore.LoginCallback(){
     	@Override
     	public void onLoginSuccess(User u, boolean isRegist) {
             if(isRegist){
                     /*注册成功*/
             }else{
                     /*登录成功*/
             }
     	}
     	@Override
     	public void onCancel() {
             /*取消登录*/
     	}
     };
     FuncCore.goLoginAndInit(context, logincallback, true);
    

    goLoginAndInit第三个方法是指定用户页面先展示注册页还是先展示登录页,设置为true,则先展示登录页

  8. 设置角色和服信息:

     com.web337.android.id.Zone.getInstance().clear();
     com.web337.android.id.Zone.getInstance().setRole_id("roleid00001");
     com.web337.android.id.Zone.getInstance().setServer_id("server1");
    
  9. 打开浮动菜单功能(可选):

     FuncCore.showFloatWindow(activity);
    
  10. 发起支付:

    使用337的档位展示页面,直接调用:

    PayCore.show();
    

    使用自有展示页面,需生成订单,并通过SDK发起支付:

    com.web337.android.model.Order o = new com.web337.android.model.Order();
    o.setAmount(amount);			//游戏币数量
    o.setDescription(description);	//商品描述
    o.setGross(gross);				//商品金额
    o.setCurrency(currency);		//商品金额的货币类型
    o.setProductId(productid);		//商品ID,由337分配
    o.setCustomData(customdata);	//自定义数据,回调时原样回调
    PayCore.beginPay(context, o);