電信(愛游戲)計費方式:
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包:
- package com.iap.egame;
-
- import java.util.HashMap;
- import java.util.Map;
-
- import android.app.Activity;
- import android.os.Handler;
- import android.os.Looper;
- import android.util.Log;
- import cn.egame.terminal.paysdk.EgamePay;
- import cn.egame.terminal.paysdk.EgamePayListener;
- import cn.egame.terminal.sdk.log.EgameAgent;
-
- import com.unity3d.player.UnityPlayer;
-
- public class Egame_IAPController
- {
- static final String TAG = "Egame_IAPController";
-
- static String ObjectName = "";
- static String CkFun = "";
-
- static Activity getActivity()
- {
- return UnityPlayer.currentActivity;
- }
-
- // 初始化
- public static void Init(String _objectName, String _ckFun)
- {
- SetListener(_objectName, _ckFun);
- Handler handler = new Handler(Looper.getMainLooper());
- handler.post(new Runnable()
- {
- @Override
- public void run()
- {
- EgamePay.init(getActivity());
- }
- });
- }
-
- // 支付
- public static void Order(String altas, String name)
- {
- final HashMap<String, String> payParams = new HashMap<String, String>();
- payParams.put(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS, altas);
- payParams.put(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME, name);
-
- Handler handler = new Handler(Looper.getMainLooper());
- handler.post(new Runnable()
- {
- @Override
- public void run()
- {
- Pay(payParams);
- }
- });
- }
-
- // 支付
- private static void Pay(HashMap<String, String> payParams)
- {
- EgamePay.pay(getActivity(), payParams, new EgamePayListener()
- {
-
- @Override
- public void paySuccess(Map<String, String> params)
- {
- String result = "{result:0,altas:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS) + ",name:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME) + "}";
- SendMessage(result);
- }
-
- @Override
- public void payFailed(Map<String, String> params, int erroInt)
- {
- String result = "{result:1,altas:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS) + ",name:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME) + ",erroInt:" + erroInt + "}";
- SendMessage(result);
- }
-
- @Override
- public void payCancel(Map<String, String> params)
- {
- String result = "{result:2,altas:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS) + ",name:" + params.get(EgamePay.PAY_PARAMS_KEY_TOOLS_NAME) + "}";
- SendMessage(result);
- }
- });
- }
-
- // 暫停
- public static void OnPause()
- {
- Handler handler = new Handler(Looper.getMainLooper());
- handler.post(new Runnable()
- {
- @Override
- public void run()
- {
- EgameAgent.onPause(getActivity());
- }
- });
- }
-
- // 恢復(fù)
- public static void OnResume()
- {
- Handler handler = new Handler(Looper.getMainLooper());
- handler.post(new Runnable()
- {
- @Override
- public void run()
- {
- EgameAgent.onResume(getActivity());
- }
- });
- }
-
- public static void SetListener(String _objectName, String _ckFun)
- {
- ObjectName = _objectName;
- CkFun = _ckFun;
- Log.d(TAG, "SetListener ObjectName:" + ObjectName + ";CkFun:" + CkFun);
- }
-
- // 發(fā)送消息給Unity
- public static void SendMessage(String dataStr)
- {
- Log.d(TAG, "支付結(jié)果:" + dataStr);
- if (!ObjectName.isEmpty() && !CkFun.isEmpty())
- {
- UnityPlayer.UnitySendMessage(ObjectName, CkFun, dataStr);
- }
- }
- }
5、Unity調(diào)用jar包得接口:
- using UnityEngine;
- using System.Collections;
- #if UNITY_ANDROID
- public class EgameBinding
- {
- const string PAKAGE_PATH = "com.iap.egame.Egame_IAPController";
- /// <summary>
- /// 初始化
- /// </summary>
- /// <param name="target">Target.</param>
- /// <param name="callback">Callback.</param>
- public static void Init (string target, string callback)
- {
- AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);
- ac.CallStatic ("Init", target, callback);
- }
- /// <summary>
- /// 發(fā)起支付
- /// </summary>
- /// <param name="paycode">Paycode.</param>
- /// <param name="nameStr">nameStr.</param>
- public static void Order (string paycode, string nameStr)
- {
- AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);
- ac.CallStatic ("Order", paycode, nameStr);
- }
- /// <summary>
- /// 暫停
- /// </summary>
- public static void OnPause ()
- {
- AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);
- ac.CallStatic ("OnPause");
- }
- /// <summary>
- /// 恢復(fù)
- /// </summary>
- public static void OnResume ()
- {
- AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);
- ac.CallStatic ("OnResume");
- }
- /// <summary>
- /// 設(shè)置監(jiān)聽
- /// </summary>
- /// <param name="target">Target.</param>
- /// <param name="callback">Callback.</param>
- public static void SetListener (string target, string callback)
- {
- AndroidJavaClass ac = new AndroidJavaClass (PAKAGE_PATH);
- ac.CallStatic ("SetListener", target, callback);
- }
- }
- #endif
|