瀏覽代碼

修改支付宝逻辑

jet 8 年之前
父節點
當前提交
428e947d28

+ 1 - 1
Assets/AtlasUtility/SerializeObject.prefab

@@ -60,7 +60,7 @@ MonoBehaviour:
   SlicePath: Assets/AtlasUtility/Slice
   PackName: BtnAtlas1
   Atlas: {fileID: 0}
-  Target: {fileID: 2800000, guid: e4b9c6a4105e96345a144d5439198512, type: 3}
+  Target: {fileID: 0}
   TextureList:
   - {fileID: 2800000, guid: c1bd930204518d34490b0a65ce52cfe2, type: 3}
   - {fileID: 2800000, guid: 82e315b06b317424fa171ba1079b64d3, type: 3}

+ 0 - 9
Assets/Editor.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 5fcd7f3618d0f154995b49930421ea1b
-folderAsset: yes
-timeCreated: 1501174341
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Assets/Plugins/metro/UWP.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: b3a793fc2ce8625488a5576817135789
-folderAsset: yes
-timeCreated: 1501174341
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Assets/Plugins/metro/WindowsPhone81.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: ea89367846fcf554188c49cca742be04
-folderAsset: yes
-timeCreated: 1501174341
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 0
Assets/Resource/Sprite/SpriteUI/Scene.png → Assets/Resource/Sprite/SpriteUI/Square.png


+ 0 - 0
Assets/Resource/Sprite/SpriteUI/Scene.png.meta → Assets/Resource/Sprite/SpriteUI/Square.png.meta


+ 1 - 0
Assets/Script/Editor/PostProcessor.cs

@@ -61,6 +61,7 @@ public class NewBehaviourScript
         project.AddFrameworkToProject(targetGuid, "CFNetwork.framework", false);
         project.AddFrameworkToProject(targetGuid, "CoreMotion.framework", false);
         project.AddFrameworkToProject(targetGuid, "AlipaySDK.framework", false);
+        project.AddFrameworkToProject(targetGuid, "Security.framework", false);
 
 
         //保存

+ 1 - 0
Assets/Script/Manage/Initializer.cs

@@ -45,6 +45,7 @@ public class Initializer : MonoBehaviour
 
         ManaServer.Login(ManaCenter.LoginCallbackInitial);
         ManaServer.MailRequest();
+        ManaServer.IOSAlipayRequest();
 
         Instance = this;
         Transform = transform;

+ 1 - 1
Assets/Script/Manage/ManaCenter.cs

@@ -987,7 +987,7 @@ public class ManaCenter : Regist
             return;
         }
 
-        ManaServer.SetPackLock();
+        ManaServer.PackTypeRequest();
 
         if (ManaServer.Connect)
         {

+ 25 - 4
Assets/Script/Manage/ManaIAP.cs

@@ -129,14 +129,35 @@ public class ManaIAP : MonoBehaviour, IStoreListener
 
     public static void InitializeAlipay()
     {
-        foreach (var attribute in ManaData.GetIAPConfig())
+        try
         {
-            ProductList.Add(attribute[1].Value);
+            foreach (var attribute in ManaData.GetIAPConfig())
+            {
+                ProductList.Add(attribute[1].Value);
 
-            ProductIdDic.Add(attribute[5].Value, attribute[1].Value);
-            PackNameDic.Add(attribute[1].Value, attribute[5].Value);
+                ProductIdDic.Add(attribute[5].Value, attribute[1].Value);
+                PackNameDic.Add(attribute[1].Value, attribute[5].Value);
+            }
+        }
+        catch (Exception e)
+        {
+            ManaDebug.Log("001 " + e.ToString());
         }
 
+        try
+        {
+            foreach (var attribute in ManaData.GetIAPConfig())
+            {
+                ProductList.Add(attribute[1].Value);
+
+                ProductIdDic.Add(attribute[5].Value, attribute[1].Value);
+                PackNameDic.Add(attribute[1].Value, attribute[5].Value);
+            }
+        }
+        catch (Exception e)
+        {
+            ManaDebug.Log("001 " + e.ToString());
+        }
         AliplayManager.Instance.Init();
     }
 

+ 57 - 24
Assets/Script/Manage/ManaServer.cs

@@ -8,6 +8,7 @@ using System;
 using System.Net;
 using System.Xml;
 using System.Text;
+using System.Linq;
 using System.Net.Mail;
 using System.Collections;
 using System.Collections.Generic;
@@ -100,6 +101,7 @@ public class ManaServer : Regist
     public static string ReportContent;
 
     public static JsonData JsonData;
+    //public static JsonData IndexJsonData;
     public static DateTime Time;
 
     public static string MailXml;
@@ -127,6 +129,7 @@ public class ManaServer : Regist
                 else
                 {
                     Login(ManaCenter.LoginCallbackInitial);
+                    IOSAlipayRequest();
                 }
             }
         }
@@ -145,21 +148,53 @@ public class ManaServer : Regist
     }
 
 
-    public static void MailRequest()
+    public static void IndexRequest(Action<JsonData> callback)
     {
         URLRequestData urlData = new URLRequestData();
 
-        URLRequest.CreateStrURLRequest
+        URLRequest.CreateURLRequest
         (
-            "https://garden.dashgame.com/xml/mail.xml",
+            "https://garden.dashgame.com/index.php/home/index/index",
             urlData,
             data =>
             {
-                MailXml = data;
+                if (data.Inst_Object.ContainsKey("error"))
+                {
+                    if (ManaData.PlayerDoc_ != null)
+                    {
+                        PackLock = ManaData.GetPlayerBool("PackLock");
+                    }
+                }
+                else
+                {
+                    callback(data);
+                }
             }
         );
     }
 
+
+    public static void MailRequest()
+    {
+        IndexRequest
+            (
+                data =>
+                {
+                    URLRequestData urlData = new URLRequestData();
+
+                    URLRequest.CreateStrURLRequest
+                    (
+                        data["l"][1]["val"].ToJson().Trim('"'),
+                        urlData,
+                        mailXml =>
+                        {
+                            MailXml = mailXml;
+                        }
+                    );
+                }
+            );
+    }
+
     public static void GetMainReward()
     {
         for (int i = 0; i < MailRewardList.Count; i++)
@@ -382,36 +417,34 @@ public class ManaServer : Regist
     }
 
 
-    public static void SetPackLock()
+    public static void PackTypeRequest()
     {
-        URLRequestData urlData = new URLRequestData();
-
-        URLRequest.CreateURLRequest
-        (
-            "https://garden.dashgame.com/index.php/home/index/index",
-            urlData,
-            data =>
-            {
-                if (data.Inst_Object.ContainsKey("error"))
+        IndexRequest
+            (
+                data =>
                 {
+                    PackLock = Auxiliary.BoolParse(data["l"][0]["val"].ToJson().Trim('"'), true);
+
                     if (ManaData.PlayerDoc_ != null)
                     {
-                        PackLock = ManaData.GetPlayerBool("PackLock");
+                        ManaData.SavePlayerBool("PackLock", PackLock);
                     }
                 }
-                else
+            );
+    }
+
+    public static void IOSAlipayRequest()
+    {
+        IndexRequest
+            (
+                data =>
                 {
-                    PackLock = Auxiliary.BoolParse(data["l"]["val"].ToJson().Trim('"'), true);
-                    
-                    if (ManaData.PlayerDoc_ != null)
-                    {
-                        ManaData.SavePlayerBool("PackLock", PackLock);
-                    }
+                    ManaIAP.UseAlipayOnIOS = Auxiliary.BoolParse(data["l"][2]["val"].ToJson().Trim('"'), false);
                 }
-            }
-        );
+            );
     }
 
+
     public static void GetProductID(string id, URLRequest.URLRequestCallBackDelegate callback)
     {
         URLRequestData urlData = new URLRequestData();

+ 23 - 6
Assets/Script/ThirdParty/Alipay/AlipayManager.cs

@@ -9,22 +9,31 @@ 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 AndroidJavaObject androidUnityTool;
 
     private Dictionary<string, string> PackNameDic = new Dictionary<string, string>();
 
 	public void Init()
 	{
-		androidUnityTool = new AndroidJavaObject("com.dashgame.unity.UnityTool");
+#if UNITY_ANDROID
+        androidUnityTool = new AndroidJavaObject("com.dashgame.unity.UnityTool");
 		androidUnityTool.Call("setResponseGameObject", this.name);
+#elif UNITY_IOS
+
+#endif
 
-	    ManaIAP.Complete = true;
+        ManaIAP.Complete = true;
 	}
 
 	public void Pay(string id, string packName){
 
-		AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");    
-		AndroidJavaObject currentActivity = jc.GetStatic<AndroidJavaObject>("currentActivity");
 
         int index = id.IndexOf('a');
 
@@ -32,8 +41,16 @@ public class AliplayManager : UnitySingleton<AliplayManager>
 
         PackNameDic.Add(Regex.Match(WWW.UnEscapeURL(id), "out_trade_no.*total_amount").Value, packName);
 
-        //Pay(string orderInfo, Activity activity)
-        androidUnityTool.Call("pay", WWW.UnEscapeURL(id), currentActivity); // 传递的参数需与服务器协商
+#if UNITY_ANDROID
+		
+        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+        AndroidJavaObject currentActivity = jc.GetStatic<AndroidJavaObject>("currentActivity");
+
+        androidUnityTool.Call("pay", WWW.UnEscapeURL(id), currentActivity);
+
+#elif UNITY_IOS
+		aliPay(WWW.UnEscapeURL(id), this.name);
+#endif
     }
 
     public void OnPayResult(string result)

+ 2 - 2
Assets/Script/Tool/Bundle.cs

@@ -280,12 +280,12 @@ public class Bundle : MonoBehaviour
 
         if (!Logo.Complete && !Initializer.Instance.DebugMode)
         {
-            ManaReso.AddAsyncLoad<TextAsset>("PlayerConfig", Folder.Config, () => { ManaData.PlayerDoc = ManaData.PlayerDoc; ManaServer.SetPackLock(); });
+            ManaReso.AddAsyncLoad<TextAsset>("PlayerConfig", Folder.Config, () => { ManaData.PlayerDoc = ManaData.PlayerDoc; ManaServer.PackTypeRequest(); });
         }
         else
         {
             ManaData.PlayerDoc = ManaData.PlayerDoc;
-            ManaServer.SetPackLock();
+            ManaServer.PackTypeRequest();
         }
 
         yield return LoadDiscard();