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

90 lines
2.9 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

--[[
* @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