123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using UnityEngine;
- using System.IO;
- using System.Collections;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- using System.Runtime.InteropServices;
- using LitJson;
- public class AliplayManager : UnitySingleton<AliplayManager>
- {
- #if UNITY_ANDROID
- private AndroidJavaObject androidUnityTool;
- #elif UNITY_IOS
- //[DllImport("__Internal")]
- //private static extern void aliPay(string orderInfo, string gameObjectName);
- #endif
- private string packName;
- //private Dictionary<string, string> PackNameDic = new Dictionary<string, string>();
- public void Init()
- {
- #if UNITY_ANDROID
- androidUnityTool = new AndroidJavaObject("com.dashgame.unity.UnityTool");
- androidUnityTool.Call("setResponseGameObject", this.name);
- #elif UNITY_IOS
- #endif
- IAPManager.Inited = true;
- }
- public void Pay(string id, string packName){
- int index = id.IndexOf('a');
- id = id.Substring(index);
- this.packName = packName;
- //PackNameDic.Add(Regex.Match(WWW.UnEscapeURL(id), "out_trade_no.*total_amount").Value, packName);
- #if UNITY_ANDROID
-
- //AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- //AndroidJavaObject currentActivity = jc.GetStatic<AndroidJavaObject>("currentActivity");
- androidUnityTool.Call("pay", WWW.UnEscapeURL(id));
- #elif UNITY_IOS
- //aliPay(WWW.UnEscapeURL(id), this.name);
- #endif
- }
- public void OnPayResult(string result)
- {
- if (result.Split('|')[0] =="9000")
- {
- IAPManager.BuyProductCallbackDictionary[packName].Invoke();
- PayCard.Hide();
- }
- else
- {
- Bubble.Show(null, Language.GetStr(LanguageLabel.IAP__PurchaseFail));
- ResourceManager.Get<CanvasGroup>(CanvasLabel.AK_PayCard).interactable = true;
- }
- //if result=9000 means pay success;
- //if (int.Parse(result.Split('|')[0]) == 9000)
- //{
- // Bubble.Show(null, Language.GetStr(LanguageLabel.IAP__PurchaseSuccess));
- // JsonData jsonData = JsonMapper.ToObject(result.Split('|')[1]);
- // string out_trade_no = jsonData["alipay_trade_app_pay_response"]["out_trade_no"].ToString();
- // string key = "";
- // string packName = "";
- // foreach (var kv in PackNameDic)
- // {
- // if (kv.Key.Contains(out_trade_no))
- // {
- // key = kv.Key;
- // packName = kv.Value;
- // }
- // }
- // if (!string.IsNullOrEmpty(packName))
- // {
- // PackNameDic.Remove(key);
- // IAPManager.BuyProductCallbackDictionary[packName].Invoke();
- // PayCard.Hide();
- // }
- //}
- //else
- //{
- // Bubble.Show(null, Language.GetStr(LanguageLabel.IAP__PurchaseFail));
- // ResourceManager.Get<CanvasGroup>(CanvasLabel.AK_PayCard).interactable = true;
- //}
- }
- }
|