miduo_client/Assets/LuaFramework/Scripts/Manager/AndroidSDK.cs

98 lines
2.9 KiB
C#

using System;
using UnityEngine;
using LuaInterface;
using System.Collections.Generic;
public class AndroidSDK:MonoBehaviour
{
private AndroidJavaObject mainActivity;
private bool initWXPay = false;
private LuaFunction onScuessPayHandle;
private LuaFunction onFailPayHandle;
private LuaFunction onUserCancelHandle;
public AndroidJavaObject MainActivity
{
get
{
if(mainActivity==null)
{
using (var jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
mainActivity = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
}
return mainActivity;
}
}
public void LocalTestWeiXinPay(string appId, string partnerId, string apiKey, string totalfee, string bodyStr, string notifyUrl, string callBackBackObjectName, string callBackFunctionName)
{
var wxPay = new AndroidJavaClass("com.doudou.dwc.WXPaySDK");
if (wxPay != null)
{
if(!initWXPay)
{
if(wxPay.CallStatic<bool>("InitUnityActivity", mainActivity))
{
initWXPay = true;
}
}
if (initWXPay)
{
object[] objs = new object[] { appId,partnerId,apiKey, totalfee, bodyStr, notifyUrl, callBackBackObjectName, "WXPayCallBack" };
wxPay.CallStatic("LocationPayReq", objs);
}
}
}
public void WeiXinPay(string prepayid,string noncestr,string timestamp,string sign,string callBackBackObjectName,LuaFunction onScuessPay,LuaFunction onFailPay,LuaFunction onUserCancel)
{
var wxPay = new AndroidJavaClass("com.doudou.dwc.WXPaySDK");
if (wxPay != null)
{
if (!initWXPay)
{
if (wxPay.CallStatic<bool>("InitUnityActivity", mainActivity))
{
initWXPay = true;
}
}
if (initWXPay)
{
object[] objs = new object[] { prepayid, noncestr, timestamp, sign, callBackBackObjectName, "WXPayCallBack" };
wxPay.CallStatic("WeiChatPayReq", objs);
}
}
else
{
GameLogic.Util.Log("No exsit AndroidJavaClass com.doudou.dwc.WXPaySDK");
}
}
public void WXPayCallBack(string msg)
{
switch(msg)
{
case "0":
if(onScuessPayHandle!=null)
{
onScuessPayHandle.Call();
}
break;
case "-1":
if(onFailPayHandle!=null)
{
onFailPayHandle.Call();
}
break;
case "-2":
if(onUserCancelHandle!=null)
{
onUserCancelHandle.Call();
}
break;
}
}
}