| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- local OpenPayMgr = class('OpenPayMgr')
- function OpenPayMgr:ctor()
- self.openID = "1oijtI"
- self.productCode = "62071860216202428267772989490827"
- self.openKey = "f7jMJSjCOYRX2kx7UQ4Ox5zZdAowUSe9"
- self.userId = ""
- self.roleName = ""
- self.serverName = ""
- self.roleLevel = 0
- self.sign = ""
- self.baseUrl = "http://mia.hkhappygame.com/open/getPayUrl"
- LogError("---------OpenPayMgr --------------")
- self.getPayUrlWWW = nil
- self.CurPayUrl = nil
- self.postData = ""
- --62071860216202428267772989490827
- self:RegisterNetEvents()
-
- end
- ---IOS
- -- 25053842546594917787640743618071
- -- 2jqXkC
- -- oxlQZ8zN7QfrC6mMJ9P0pnvPjx8JutlS
- 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
- self.platform = ManagerContainer.LuaGameMgr.platform
- if self.platform == "SDKHwQuick" then
- self.openID = "1oijtI"
- self.productCode = "62071860216202428267772989490827"
- self.openKey = "f7jMJSjCOYRX2kx7UQ4Ox5zZdAowUSe9"
- elseif self.platform == "SDKYOUYI_IOS" then
- self.openID = "2jqXkC"
- self.productCode = "25053842546594917787640743618071"
- self.openKey = "oxlQZ8zN7QfrC6mMJ9P0pnvPjx8JutlS"
- else
- -- self.openID = "2jqXkC"
- -- self.productCode = "25053842546594917787640743618071"
- -- self.openKey = "oxlQZ8zN7QfrC6mMJ9P0pnvPjx8JutlS"
- end
- --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()
- ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_MD5_GET_ACK, self.OnGetMD5InfoAck, self)
- end
- function OpenPayMgr:UnRegisterNetEvents()
- ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_MD5_GET_ACK)
- 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)
- LogError("result = "..Inspect(result))
- if ok and result.status then
-
- self.CurPayUrl ="http://" ..result.data.payUrl
- LogError("PayUrl = [[[["..self.CurPayUrl.."]]]]")
- --ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, self.CurPayUrl, nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
- UnityEngine.Application.OpenURL(self.CurPayUrl)
- else
- LogError("获取支付页面失败!!!!")
- end
-
- end
- self.getPayUrlWWW:Dispose()
- self.getPayUrlWWW = nil
- end
- end
- function OpenPayMgr:Pay(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams)
- local goodsNameNew = amount.."_商品"
- local goodsIdNew = ""
- if self.platform == "SDKHwQuick" then
- goodsIdNew = "product_"..amount.."_ro"
- elseif self.platform == "SDKYOUYI_IOS" then
- goodsIdNew = "intention"..amount
- else
- --goodsIdNew = "intention"..amount
- goodsIdNew = "product_"..amount.."_ro"
- end
-
- local exstr = "{\"platform\":\""..self.platform.."_MyCard\",\"cpOrderId\":\""..cpOrderId.."\"}"
- local url,params = self:GetOpenPayUrl(goodsIdNew, goodsNameNew, goodsDesc, count, amount, cpOrderId, cbUrl, exstr)
- local sortParams= {}
- for kv in pairs(params) do
- if kv ~= nil then
- table.insert(sortParams,kv)
- end
- end
- table.sort(sortParams,function (a,b)
- return a < b
- end)
- local paaramsStr = ""
- for _, k in pairs(sortParams) do
- --LogError("["..k.."] = "..params[k])
- paaramsStr = paaramsStr..k.."="..params[k].."&"
- end
- paaramsStr= paaramsStr.. self.openKey
- --LogError("url = "..url)
- LogError("paaramsStr = "..paaramsStr)
- self.postData = url
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_MD5_GET_REQ, {md5 = paaramsStr})
- end
- function OpenPayMgr:GetOpenPayUrl(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams)
- local params= {}
- local url ="" --"https://mia.hkhappygame.com/open/getPayUrl?"
- -- openId string 必传 开放平台开发者身份id,由QuickSDK分配
- url = url .. "openId=" .. self.openID
- params['openId'] = self.openID
- -- productCode string 必传 产品CODE,在QuickSDK后台获取
- url = url .. "&productCode=" .. self.productCode
- params['productCode'] = self.productCode
- -- userId string 必传 SDK用户的账号ID
- url = url .. "&userId=" .. self.userId
- params['userId'] = self.userId
- -- goodsId string 必传 游戏商品id
- url = url .. "&goodsId=" .. goodsId
- params['goodsId'] = goodsId
- -- cpOrderNostring 选传游戏订单号
- url = url .. "&cpOrderNostring=" .. cpOrderId
- params['cpOrderNostring'] = cpOrderId
- -- orderSubject string 必传 订单标题
- url = url .. "&orderSubject=" .. goodsDesc
- params['orderSubject'] = goodsDesc
- -- roleName string必传 用户角色名
- url = url .. "&roleName=" .. self.roleName
- params['roleName'] = self.roleName
- -- serverName string必传游戏服务器名
- url = url .. "&serverName=" .. self.serverName
- params['serverName'] = self.serverName
- -- goodsName string必传 商品名称
- url = url .. "&goodsName=" .. goodsName
- params['goodsName'] = goodsName
- -- roleLevel int 必传 用户角色等级
- url = url .. "&roleLevel=" .. self.roleLevel
- params['roleLevel'] = self.roleLevel
- -- extrasParams string必传 订单保留参数,原样返回给cp
- url = url .. "&extrasParams=" .. extrasParams
- params['extrasParams'] = extrasParams
- -- callbackUrl string 选传订单回调地址,就是通知cp服务器发货的通知地址
- url = url .. "&callbackUrl=" .. cbUrl
- params['callbackUrl'] = cbUrl
- -- payType string 选传 支付方式ID,ID获取请参照SDK后台“平台管理”>“支付对照表”。支持多种支付方式,多个支付方式以“|”隔开,比如:12|13|23注意:支付方式ID需满足后台勾选已经支持的第三方支付方式,否则无法显示指定支付方式渠道
- --url = url .. "&payType=" .. "14"
- --params['payType'] = "14"
- -- countryCode string 选传 国家代码,如CHN。获取请参照SDK后台“平台管理”>“地区管理”注意:国家代码需满足后台勾选已经支持的第三方支付方式,否则无法显示指定国家的支付
- url = url .. "&countryCode=" .. "TWN"--"en-US"
- params['countryCode'] = "TWN"--"en-US"
- -- clientLang string 必传 支付中心语言包,填写地区语言代码,如en-US。默认为中文繁体
- url = url .. "&clientLang=" .. "zh-tw"--"en-US"
- params['clientLang'] = "zh-tw"--"en-US"
- -- payVersion int 选传 第三方支付版本,默认不填写为SDK常规版本。取固定值为:2. 表示平台单独处理版本,此版本平台需传金额和币种进行支付并且SDK不参与商品金额的转换由平台自身处理,平台根据自身情况酌情考虑使用。
- -- amount float 选传 订单金额。如果payVersion的值为2,则必传amount字段
- url = url .. "&amount=" .. amount
- params['amount'] = amount
- -- currency string 选传 选传 订单支付的币种代码。如果payVersion的值为2,则必传currency字段注意:支付币种代码必须为SDK后台货币管理里面所支持的货币代码
- url = url .. "¤cy=" .. "USD"
- params['currency'] = "USD"
- -- sign string 必传 签名串,算法详见第三章签名算法描述
- url = url .. "&sign="
- return url,params
- end
- function OpenPayMgr:OnGetMD5InfoAck(data)
- if ManagerContainer.NetManager:IsErrorData(data) then
- return
- end
- if data.md5 then
- self.postData= self.postData..data.md5
- else
- return
- end
- LogError("md5 = "..data.md5)
- if self.getPayUrlWWW then
- self.getPayUrlWWW:Dispose()
- self.getPayUrlWWW = nil
- end
- LogError("Url = [[["..self.baseUrl.."]]]")
- LogError("postData = [[["..self.postData.."]]]")
- self.getPayUrlWWW = UnityEngine.WWW(self.baseUrl,self.postData)
- end
- return OpenPayMgr
|