miduo_client/Assets/ManagedResources/~Lua/Modules/Pay/PayManager.lua

96 lines
3.3 KiB
Lua
Raw Normal View History

2020-08-06 17:52:32 +08:00
--[[
2020-05-09 13:31:21 +08:00
* @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)
2020-07-15 13:44:37 +08:00
SDKMgr.onPayCallback = function(payResp)
Log("onPayCallback::"..payResp)
2020-05-09 13:31:21 +08:00
local str = string.split(payResp, "#")
2020-07-17 11:39:24 +08:00
local result = tonumber(str[1])
local orderId = str[2]
if result == SDK_RESULT.SUCCESS then
2020-05-09 13:31:21 +08:00
DataCenterManager.CommitPayStatus(
"IN_GAME_"..context.Type,
2020-07-15 13:44:37 +08:00
SDKMgr:GetPayOrderID(),
2020-05-09 13:31:21 +08:00
"VALID",
tostring(context.Price)
)
elseif result == SDK_RESULT.FAILED then
2020-05-09 13:31:21 +08:00
DataCenterManager.CommitPayStatus(
"IN_GAME_"..context.Type,
2020-07-15 13:44:37 +08:00
SDKMgr:GetPayOrderID(),
2020-05-09 13:31:21 +08:00
"INVALID",
tostring(context.Price)
)
2020-07-17 11:39:24 +08:00
else
2020-05-09 13:31:21 +08:00
--PopupTipPanel.ShowTip("取消充值" .. result)
2020-07-17 11:39:24 +08:00
-- DataCenterManager.CommitPayStatus(
-- "IN_GAME_"..context.Type,
-- SDKMgr:GetPayOrderID(),
-- "INVALID",
-- tostring(context.Price)
-- )
2020-05-09 13:31:21 +08:00
end
end
2020-07-15 13:44:37 +08:00
local params = SDK.SDKPayArgs.New()
2020-05-09 13:31:21 +08:00
params.productId = context.Id
params.productName = context.Name or ""
params.productDesc = context.Desc or ""
params.price = context.Price * 100 -- 以分为单位
2020-05-09 13:31:21 +08:00
params.ratio = 1
params.buyNum = context.BuyNum or 1
params.coinNum = BagManager.GetItemCountById(16)
2020-07-17 11:39:24 +08:00
-- 服务器相关
2020-05-09 13:31:21 +08:00
params.zoneId = PlayerManager.serverInfo.server_id
params.serverID = PlayerManager.serverInfo.server_id
params.serverName = PlayerManager.serverInfo.name
2020-07-17 11:39:24 +08:00
-- 角色相关
2020-05-09 13:31:21 +08:00
params.roleID = tostring(PlayerManager.uid)
params.roleName = PlayerManager.nickName
params.roleLevel = PlayerManager.level
params.vip = tostring(VipManager.GetVipLevel())
params.guildID = PlayerManager.familyId
2020-07-17 11:39:24 +08:00
-- 其他
2020-05-09 13:31:21 +08:00
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)
2020-07-15 13:44:37 +08:00
SDKMgr:Pay(params)
--
ThinkingAnalyticsManager.Track("create_order", {
goods_id = context.Id,
goods_name = context.Name,
order_money_amount = context.Price,
2020-07-27 17:48:33 +08:00
Bundle_id = AppConst.SdkPackageName,
})
2020-05-09 13:31:21 +08:00
end
2020-06-23 18:36:24 +08:00
return this