local OpenPayMgr = class('OpenPayMgr') function OpenPayMgr:ctor() self.openID = "" self.productCode = "" self.userId = "" self.roleName = "" self.serverName = "" self.roleLevel = 0 self.sign = "" LogError("---------OpenPayMgr --------------") self.getPayUrlWWW = nil self.CurPayUrl = nil end function OpenPayMgr:Clear() self.userId = "" self.roleName = "" self.serverName = "" self.roleLevel = 0 end function OpenPayMgr:Destroy() self:UnRegisterNetEvents() end function OpenPayMgr:SetOpenData(userId,roleName,roleLevel,serverName) self.userId = userId self.roleName = roleName self.serverName = serverName self.roleLevel = roleLevel --LogError("---------OpenPayMgr -------------uid = "..userId.." roleName = "..roleName.." roleLevel = "..roleLevel.." serverName = "..serverName) end --ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, "https://www.baidu.com", nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2) function OpenPayMgr:RegisterNetEvents() end function OpenPayMgr:UnRegisterNetEvents() end function OpenPayMgr:Update() if self.getPayUrlWWW ~= nil and self.getPayUrlWWW.isDone then if self.getPayUrlWWW.error and self.getPayUrlWWW.error ~= '' then LogError("获取支付页面失败!!!!") else LogError(self.getPayUrlWWW.text) local ok, result = RO_XPCALL(JSON.decode, debug.traceback, JSON, self.getPayUrlWWW.text) if ok and result.status then self.CurPayUrl = result.data ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, self.CurPayUrl, nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2) end end self.getPayUrlWWW:Dispose() self.getPayUrlWWW = nil end end function OpenPayMgr:Pay(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams) local url = self:GetOpenPayUrl(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams) if self.getPayUrlWWW then self.getPayUrlWWW:Dispose() self.getPayUrlWWW = nil end self.getPayUrlWWW = UnityEngine.WWW(url) end function OpenPayMgr:GetOpenPayUrl(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams) local url = "http://xxx.com/open/getPayUrl?" -- openId string 必传 开放平台开发者身份id,由QuickSDK分配 url = url .. "openId=" .. self.openID -- productCode string 必传 产品CODE,在QuickSDK后台获取 url = url .. "&productCode=" .. self.productCode -- userId string 必传 SDK用户的账号ID url = url .. "&userId=" .. self.userId -- goodsId string 必传 游戏商品id url = url .. "&goodsId=" .. goodsId -- cpOrderNostring 选传游戏订单号 url = url .. "&cpOrderNostring=" .. cpOrderId -- orderSubject string 必传 订单标题 url = url .. "&orderSubject=" .. goodsDesc -- roleName string必传 用户角色名 url = url .. "&roleName=" .. self.roleName -- serverName string必传游戏服务器名 url = url .. "&serverName=" .. self.serverName -- goodsName string必传 商品名称 url = url .. "&goodsName=" .. goodsName -- roleLevel int 必传 用户角色等级 url = url .. "&roleLevel=" .. self.roleLevel -- extrasParams string必传 订单保留参数,原样返回给cp url = url .. "&extrasParams=" .. extrasParams -- callbackUrl string 选传订单回调地址,就是通知cp服务器发货的通知地址 url = url .. "&callbackUrl=" .. cbUrl -- payTypestring 选传 支付方式ID,ID获取请参照SDK后台“平台管理”>“支付对照表”。支持多种支付方式,多个支付方式以“|”隔开,比如:12|13|23注意:支付方式ID需满足后台勾选已经支持的第三方支付方式,否则无法显示指定支付方式渠道 -- countryCode string 选传国家代码,如CHN。获取请参照SDK后台“平台管理”>“地区管理”注意:国家代码需满足后台勾选已经支持的第三方支付方式,否则无法显示指定国家的支付 -- clientLang string 必传支付中心语言包,填写地区语言代码,如en-US。默认为中文繁体 -- payVersion int 选传 第三方支付版本,默认不填写为SDK常规版本。取固定值为:2. 表示平台单独处理版本,此版本平台需传金额和币种进行支付并且SDK不参与商品金额的转换由平台自身处理,平台根据自身情况酌情考虑使用。 -- amount float 选传 订单金额。如果payVersion的值为2,则必传amount字段 url = url .. "&amount=" .. amount -- currency string 选传 选传 订单支付的币种代码。如果payVersion的值为2,则必传currency字段注意:支付币种代码必须为SDK后台货币管理里面所支持的货币代码 -- sign string 必传 签名串,算法详见第三章签名算法描述 url = url .. "&sign=" .. self.sign return url end return OpenPayMgr