98 lines
2.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|