日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Unity融合計費接入(電信愛游戲)

 kiki的號 2017-04-17

電信(愛游戲)計費方式:

1、(單)電信計費;(如果自己已經(jīng)接入了聯(lián)通、移動,可升級為三網(wǎng)渠道支付,前提是要在移動平臺、聯(lián)通平臺為該游戲綁定愛游戲渠道)

2、三網(wǎng)(融合)計費;(貌似只能上愛游戲平臺,愛游戲會幫你申請移動、電信計費)

3、在以上兩種短信支付基礎(chǔ)上,還支持第三方的支付(如:支付寶、翼支付、銀聯(lián)、愛貝支付),需要強聯(lián)網(wǎng)。

具體詳情:http://open./dev/wiki/p1?tab_index=0&page=1。

接下來看看增么在Unity項目中接入三網(wǎng)融合計費:

1、在愛游戲開放平臺申請計費成功之后會生成兩個計費文件:feeInfo.dat和mmpay.xml(移動MM計費文件),下載下來備用。

2、下載最新的SDK:http://180.96.63.69/Documents/SDK_410.html這里提供了所有資源的下載,這里我們下載他的u3d文檔及demo工程文件就可以了,它已經(jīng)將需要的資源都集成進(jìn)去了。


3、下載下來的文檔已經(jīng)很清楚的說明了接入流程,這里就不在多說了。需要指出的是你需要把assets、libs用到的所有資源拷貝到Unity的Android目錄,同時將第一步下載到的feeInfo.dat和mmpay.xml替換掉assets里面的,還需要注意的是你的應(yīng)用名稱和包名必須跟你在申請計費的時候填寫的信息必須一致。

4、你可能需要自己修改demo里面的各個接口,并重新生成jar包:

  1. package com.iap.egame;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5.   
  6. import android.app.Activity;  
  7. import android.os.Handler;  
  8. import android.os.Looper;  
  9. import android.util.Log;  
  10. import cn.egame.terminal.paysdk.EgamePay;  
  11. import cn.egame.terminal.paysdk.EgamePayListener;  
  12. import cn.egame.terminal.sdk.log.EgameAgent;  
  13.   
  14. import com.unity3d.player.UnityPlayer;  
  15.   
  16. public class Egame_IAPController  
  17. {  
  18.     static final String TAG = "Egame_IAPController";  
  19.   
  20.     static String ObjectName = "";  
  21.     static String CkFun = "";  
  22.   
  23.     static Activity getActivity()  
  24.     {  
  25.         return UnityPlayer.currentActivity;  
  26.     }  
  27.   
  28.     // 初始化  
  29.     public static void Init(String _objectName, String _ckFun)  
  30.     {  
  31.         SetListener(_objectName, _ckFun);  
  32.         Handler handler = new Handler(Looper.getMainLooper());  
  33.         handler.post(new Runnable()  
  34.         {  
  35.             @Override  
  36.             public void run()  
  37.             {  
  38.                 EgamePay.init(getActivity());  
  39.             }  
  40.         });  
  41.     }  
  42.   
  43.     // 支付  
  44.     public static void Order(String altas, String name)  
  45.     {  
  46.         final HashMap<String, String> payParams = new HashMap<String, String>();  
  47.         payParams.put(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS, altas);  
  48.         payParams.put(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME, name);  
  49.   
  50.         Handler handler = new Handler(Looper.getMainLooper());  
  51.         handler.post(new Runnable()  
  52.         {  
  53.             @Override  
  54.             public void run()  
  55.             {  
  56.                 Pay(payParams);  
  57.             }  
  58.         });  
  59.     }  
  60.   
  61.     // 支付  
  62.     private static void Pay(HashMap<String, String> payParams)  
  63.     {  
  64.         EgamePay.pay(getActivity(), payParams, new EgamePayListener()  
  65.         {  
  66.   
  67.             @Override  
  68.             public void paySuccess(Map<String, String> params)  
  69.             {  
  70.                 String result = "{result:0,altas:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS) + ",name:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME) + "}";  
  71.                 SendMessage(result);  
  72.             }  
  73.   
  74.             @Override  
  75.             public void payFailed(Map<String, String> params, int erroInt)  
  76.             {  
  77.                 String result = "{result:1,altas:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS) + ",name:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME) + ",erroInt:" + erroInt + "}";  
  78.                 SendMessage(result);  
  79.             }  
  80.   
  81.             @Override  
  82.             public void payCancel(Map<String, String> params)  
  83.             {  
  84.                 String result = "{result:2,altas:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS) + ",name:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME) + "}";  
  85.                 SendMessage(result);  
  86.             }  
  87.         });  
  88.     }  
  89.   
  90.     // 暫停  
  91.     public static void OnPause()  
  92.     {  
  93.         Handler handler = new Handler(Looper.getMainLooper());  
  94.         handler.post(new Runnable()  
  95.         {  
  96.             @Override  
  97.             public void run()  
  98.             {  
  99.                 EgameAgent.onPause(getActivity());  
  100.             }  
  101.         });  
  102.     }  
  103.   
  104.     // 恢復(fù)  
  105.     public static void OnResume()  
  106.     {  
  107.         Handler handler = new Handler(Looper.getMainLooper());  
  108.         handler.post(new Runnable()  
  109.         {  
  110.             @Override  
  111.             public void run()  
  112.             {  
  113.                 EgameAgent.onResume(getActivity());  
  114.             }  
  115.         });  
  116.     }  
  117.   
  118.     public static void SetListener(String _objectName, String _ckFun)  
  119.     {  
  120.         ObjectName = _objectName;  
  121.         CkFun = _ckFun;  
  122.         Log.d(TAG, "SetListener ObjectName:" + ObjectName + ";CkFun:" + CkFun);  
  123.     }  
  124.   
  125.     // 發(fā)送消息給Unity  
  126.     public static void SendMessage(String dataStr)  
  127.     {  
  128.         Log.d(TAG, "支付結(jié)果:" + dataStr);  
  129.         if (!ObjectName.isEmpty() && !CkFun.isEmpty())  
  130.         {  
  131.             UnityPlayer.UnitySendMessage(ObjectName, CkFun, dataStr);  
  132.         }  
  133.     }  
  134. }  

5、Unity調(diào)用jar包得接口:

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3. #if UNITY_ANDROID  
  4. public class EgameBinding  
  5. {  
  6.     const string PAKAGE_PATH = "com.iap.egame.Egame_IAPController";  
  7.     /// <summary>  
  8.     /// 初始化  
  9.     /// </summary>  
  10.     /// <param name="target">Target.</param>  
  11.     /// <param name="callback">Callback.</param>  
  12.     public static void Init (string target, string callback)  
  13.     {  
  14.         AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);  
  15.         ac.CallStatic ("Init", target, callback);  
  16.     }  
  17.     /// <summary>  
  18.     /// 發(fā)起支付  
  19.     /// </summary>  
  20.     /// <param name="paycode">Paycode.</param>  
  21.     /// <param name="nameStr">nameStr.</param>  
  22.     public static void Order (string paycode, string nameStr)  
  23.     {  
  24.         AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);  
  25.         ac.CallStatic ("Order", paycode, nameStr);  
  26.     }  
  27.     /// <summary>  
  28.     /// 暫停  
  29.     /// </summary>  
  30.     public static void OnPause ()  
  31.     {  
  32.         AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);  
  33.         ac.CallStatic ("OnPause");  
  34.     }  
  35.     /// <summary>  
  36.     /// 恢復(fù)  
  37.     /// </summary>  
  38.     public static void OnResume ()  
  39.     {  
  40.         AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);  
  41.         ac.CallStatic ("OnResume");  
  42.     }  
  43.     /// <summary>  
  44.     /// 設(shè)置監(jiān)聽  
  45.     /// </summary>  
  46.     /// <param name="target">Target.</param>  
  47.     /// <param name="callback">Callback.</param>  
  48.     public static void SetListener (string target, string callback)  
  49.     {  
  50.         AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);  
  51.         ac.CallStatic ("SetListener", target, callback);  
  52.     }  
  53. }  
  54. #endif  


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多