Пример #1
0
    /// <summary>
    /// 服务器返回订单信息
    /// </summary>
    public void OnRequestRechargeOrder(GameCmd.stCreatePlatOrderPropertyUserCmd_S msg)
    {
        Client.IPlayer mainPlayer = DataManager.Instance.MainPlayer;
        if (null == mainPlayer)
        {
            return;
        }
        uint characterID = mainPlayer.GetID();
        int  characterLv = mainPlayer.GetProp((int)Client.CreatureProp.Level);

        ClanDefine.LocalClanInfo clanInfo = DataManager.Manager <ClanManger>().ClanInfo;
        string clanName = "";

        if (null != clanInfo)
        {
            clanName = clanInfo.Name;
        }

        Pmd.ZoneInfo zoneInfo     = DataManager.Manager <LoginDataManager>().GetZoneInfo();
        string       currencyName = "元宝";
        string       roleName     = mainPlayer.GetName();

        table.RechargeDataBase rechargeDb = GameTableManager.Instance.GetTableItem <table.RechargeDataBase>(msg.goodid);
        //平台支付
        DoPlatformPay(msg, characterID, characterLv, roleName, clanName, zoneInfo, currencyName, CURRENCY_RATIO, rechargeDb);
    }
Пример #2
0
    public void DoPlatformPay(GameCmd.stCreatePlatOrderPropertyUserCmd_S msg
                              , uint characterId, int characterlv, string roleName,
                              string clanName, Pmd.ZoneInfo zoneInfo, string currencyName, float currencyRatio, table.RechargeDataBase rechargeDb)
    {
        LoginDataManager lg   = DataManager.Manager <LoginDataManager>();
        int    payMoney       = (int)rechargeDb.money;
        int    fenPayMoney    = payMoney * 100;
        string moneyStr       = fenPayMoney.ToString();
        string characterIDStr = characterId.ToString();
        string gameOrder      = msg.gameorder;
        string token          = lg.LoginToken;
        string serverNo       = lg.ServerNo;
        string serverName     = lg.ServerName;
        string account        = lg.Acount;
        string accountIDStr   = lg.AccountID;
        string characterLvStr = characterlv.ToString();

        if (Application.platform == RuntimePlatform.Android)
        {
            CommonSDKPlaform.Instance.Pay(msg, characterId, characterlv, roleName, clanName, zoneInfo, currencyName, currencyRatio, rechargeDb);
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            ZqgameSDKController.Instance.Pay(moneyStr, account, characterIDStr, gameOrder, accountIDStr, token, rechargeDb.iosIAPId, serverNo, characterLvStr);
        }
    }
Пример #3
0
    /// <summary>
    /// 支付接口
    /// </summary>
    public void Pay(GameCmd.stCreatePlatOrderPropertyUserCmd_S orderMsg,
                    uint characterId, int characterlv, string roleName, string clanName
                    , Pmd.ZoneInfo zoneInfo, string currencyName, float currencyRatio
                    , table.RechargeDataBase rechargeDB)
    {
        if (!DataManager.Manager <LoginDataManager>().IsSDKLogin)
        {
            Debug.LogError("Pay Faield,SDK not login!");
            return;
        }
        if (Application.platform == RuntimePlatform.Android)
        {
            if (null == rechargeDB)
            {
                Debug.LogError("充值失败,数据错误");
                return;
            }

            AndroidJavaObject payData   = new AndroidJavaObject("com.talkingsdk.models.PayData");
            AndroidJavaObject hashmap   = new AndroidJavaObject("java.util.HashMap");
            System.IntPtr     methodPut = AndroidJNIHelper.GetMethodID(hashmap.GetRawClass(), "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");

            Debug.Log("m_loginResult.uid :" + m_loginResult.uid);


            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.Add("UserId", m_loginResult.szLoginAcccount); //uid
            //dict.Add("UserId", m_loginResult.uid); //uid
            dict.Add("UserBalance", "0");                      //用户余额
            dict.Add("UserGamerVip", "1");                     //vip 等级
            dict.Add("UserLevel", characterlv.ToString());     //角色等级
            if (string.IsNullOrEmpty(clanName))
            {
                clanName = "testName";
            }
            dict.Add("UserPartyName", clanName); //工会,帮派
            if (string.IsNullOrEmpty(roleName))
            {
                roleName = "Underworld";
            }
            dict.Add("UserRoleName", roleName);             //角色名称
            dict.Add("UserRoleId", characterId.ToString()); //角色id


            dict.Add("LoginAccount", m_loginResult.szLoginAcccount);
            dict.Add("LoginDataEx", m_loginResult.szLoginDataEx);
            dict.Add("LoginSession", m_loginResult.szLoginSession);

            dict.Add("AccessKey", orderMsg.sign);       //拓展字段

            dict.Add("OutOrderID", orderMsg.platorder); //平台订单号
            dict.Add("NoticeUrl", orderMsg.noticeurl);  //支付回调地址

            //UserServerId
            string zoneIdStr     = "";
            string serverNameStr = "Underworld";
            if (null != zoneInfo)
            {
                //合服后使用目标服务器
                zoneIdStr     = LoginDataManager.GetBestZoneID(zoneInfo).ToString();
                serverNameStr = zoneInfo.zonename;
            }

            dict.Add("UserServerId", zoneIdStr);
            dict.Add("UserServerName", serverNameStr); //
            int payMoney       = (int)rechargeDB.money;
            int gameMoneyAmout = payMoney * 10;
            dict.Add("GameMoneyAmount", gameMoneyAmout.ToString());
            dict.Add("GameMoneyName", currencyName);


            object[] args = new object[2];
            foreach (KeyValuePair <string, string> kvp in dict)
            {
                AndroidJavaObject k = new AndroidJavaObject("java.lang.String", kvp.Key);
                AndroidJavaObject v = new AndroidJavaObject("java.lang.String", kvp.Value);
                args[0] = k;
                args[1] = v;
                AndroidJNI.CallObjectMethod(hashmap.GetRawObject(), methodPut, AndroidJNIHelper.CreateJNIArgArray(args));
            }

            Debug.LogError("go to pay....  setMyOrderId " + orderMsg.gameorder +
                           " payGoodsData.pay_info.out_order: " + orderMsg.platorder +
                           " rmb: " + payMoney +
                           " setProductCount :" + orderMsg.goodnum +
                           " setProductId :" + orderMsg.appgoodid +
                           " setProductName :" + rechargeDB.rechargeName +
                           " setSubmitTime:" + orderMsg.createtime +
                           " extData:" + orderMsg.extdata +
                           " AccessKey:" + orderMsg.sign +
                           " userID:" + m_loginResult.szLoginAcccount +
                           " LoginAcccount:" + m_loginResult.szLoginAcccount
                           );

            //string 类型
            payData.Call("setMyOrderId", orderMsg.gameorder);
            payData.Call("setProductId", orderMsg.appgoodid.ToString());//"1");//
            payData.Call("setSubmitTime", orderMsg.createtime);
            payData.Call("setDescription", rechargeDB.desc);
            payData.Call("setProductName", rechargeDB.rechargeName);

            //int 类型 ,SDK 这边统一以分为单位

            int fenPayMoney = payMoney * 100;
            payData.Call("setProductRealPrice", fenPayMoney);
            payData.Call("setProductIdealPrice", fenPayMoney);
            payData.Call("setProductCount", (int)orderMsg.goodnum);
            payData.Call("setEx", hashmap);

            sdkBase.Call("pay", payData);
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
        }
    }