90 lines
2.9 KiB
Lua
90 lines
2.9 KiB
Lua
--[[
|
||
* @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
|
||
payData.RechargeId = rechargeConfig.RechargeId
|
||
this.RequestPay(payData)
|
||
end
|
||
|
||
function this.RequestPay(context)
|
||
|
||
local price = MoneyUtil.GetMoney(context.Price)
|
||
|
||
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
|
||
|
||
elseif result == SDK_RESULT.FAILED then
|
||
|
||
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 = price * 100 -- 以分为单位
|
||
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_%s", PlayerManager.uid, context.Id, VersionManager:GetVersionInfo("subChannel"))--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,
|
||
goods_name = context.Name,
|
||
order_money_amount = price,
|
||
Bundle_id = AppConst.SdkPackageName,
|
||
})
|
||
end
|
||
|
||
return this |