--[[ * @ClassName PayManager * @Description 支付管理系统 * @Date 2019/6/25 20:14 * @Author MagicianJoker, fengliudianshao@outlook.com * @Copyright Copyright (c) 2019, MagicianJoker --]] PayManager = {} local this = PayManager --初始化 function this.Initialize() end ----- 请求支付 ----- @param context ---- { ---- Id, -- required, 商品ID ---- BuyNum, -- optional, 购买个数(默认1) ---- } function this.Pay(context) local rechargeConfig = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, context.Id) local payData = table.clone(context) payData.Name = rechargeConfig.Name payData.Desc = rechargeConfig.Desc payData.Price = rechargeConfig.Price payData.Type = rechargeConfig.Type this.RequestPay(payData) end function this.RequestPay(context) SDKMgr.onPayCallback = function(payResp) Log("onPayCallback::"..payResp) local str = string.split(payResp, "#") local result = tonumber(str[1]) local orderId = str[2] if result == SDK_RESULT.SUCCESS then DataCenterManager.CommitPayStatus( "IN_GAME_"..context.Type, SDKMgr:GetPayOrderID(), "VALID", tostring(context.Price) ) elseif result == SDK_RESULT.FAILED then DataCenterManager.CommitPayStatus( "IN_GAME_"..context.Type, SDKMgr:GetPayOrderID(), "INVALID", tostring(context.Price) ) else --PopupTipPanel.ShowTip("取消充值" .. result) -- DataCenterManager.CommitPayStatus( -- "IN_GAME_"..context.Type, -- SDKMgr:GetPayOrderID(), -- "INVALID", -- tostring(context.Price) -- ) end end local params = SDK.SDKPayArgs.New() params.productId = context.Id params.productName = context.Name or "" params.productDesc = context.Desc or "" params.price = context.Price params.ratio = 1 params.buyNum = context.BuyNum or 1 params.coinNum = BagManager.GetItemCountById(16) -- 服务器相关 params.zoneId = PlayerManager.serverInfo.server_id params.serverID = PlayerManager.serverInfo.server_id params.serverName = PlayerManager.serverInfo.name -- 角色相关 params.roleID = tostring(PlayerManager.uid) params.roleName = PlayerManager.nickName params.roleLevel = PlayerManager.level params.vip = tostring(VipManager.GetVipLevel()) params.guildID = PlayerManager.familyId -- 其他 params.payNotifyUrl = "" params.extension = string.format("%s_%s", PlayerManager.uid, context.Id)--tostring(context.Id) --string.format("%s_%s_%s_%s_%s_%s", -- AppConst.OpenId,context.Id,context.Price,PlayerManager.uid, -- PlayerManager.serverInfo.server_id,PlayerManager.serverInfo.name) SDKMgr:Pay(params) -- ThinkingAnalyticsManager.Track("create_order", { goods_id = context.Id, order_money_amount = context.Price, }) end return this