OpenPayMgr.lua 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. local OpenPayMgr = class('OpenPayMgr')
  2. function OpenPayMgr:ctor()
  3. self.openID = ""
  4. self.productCode = ""
  5. self.userId = ""
  6. self.roleName = ""
  7. self.serverName = ""
  8. self.roleLevel = 0
  9. self.sign = ""
  10. LogError("---------OpenPayMgr --------------")
  11. self.getPayUrlWWW = nil
  12. self.CurPayUrl = nil
  13. end
  14. function OpenPayMgr:Clear()
  15. self.userId = ""
  16. self.roleName = ""
  17. self.serverName = ""
  18. self.roleLevel = 0
  19. end
  20. function OpenPayMgr:Destroy()
  21. self:UnRegisterNetEvents()
  22. end
  23. function OpenPayMgr:SetOpenData(userId,roleName,roleLevel,serverName)
  24. self.userId = userId
  25. self.roleName = roleName
  26. self.serverName = serverName
  27. self.roleLevel = roleLevel
  28. --LogError("---------OpenPayMgr -------------uid = "..userId.." roleName = "..roleName.." roleLevel = "..roleLevel.." serverName = "..serverName)
  29. end
  30. --ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, "https://www.baidu.com", nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
  31. function OpenPayMgr:RegisterNetEvents()
  32. end
  33. function OpenPayMgr:UnRegisterNetEvents()
  34. end
  35. function OpenPayMgr:Update()
  36. if self.getPayUrlWWW ~= nil and self.getPayUrlWWW.isDone then
  37. if self.getPayUrlWWW.error and self.getPayUrlWWW.error ~= '' then
  38. LogError("获取支付页面失败!!!!")
  39. else
  40. LogError(self.getPayUrlWWW.text)
  41. local ok, result = RO_XPCALL(JSON.decode, debug.traceback, JSON, self.getPayUrlWWW.text)
  42. if ok and result.status then
  43. self.CurPayUrl = result.data
  44. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, self.CurPayUrl, nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
  45. end
  46. end
  47. self.getPayUrlWWW:Dispose()
  48. self.getPayUrlWWW = nil
  49. end
  50. end
  51. function OpenPayMgr:Pay(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams)
  52. local url = self:GetOpenPayUrl(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams)
  53. if self.getPayUrlWWW then
  54. self.getPayUrlWWW:Dispose()
  55. self.getPayUrlWWW = nil
  56. end
  57. self.getPayUrlWWW = UnityEngine.WWW(url)
  58. end
  59. function OpenPayMgr:GetOpenPayUrl(goodsId, goodsName, goodsDesc, count, amount, cpOrderId, cbUrl, extrasParams)
  60. local url = "http://xxx.com/open/getPayUrl?"
  61. -- openId string 必传 开放平台开发者身份id,由QuickSDK分配
  62. url = url .. "openId=" .. self.openID
  63. -- productCode string 必传 产品CODE,在QuickSDK后台获取
  64. url = url .. "&productCode=" .. self.productCode
  65. -- userId string 必传 SDK用户的账号ID
  66. url = url .. "&userId=" .. self.userId
  67. -- goodsId string 必传 游戏商品id
  68. url = url .. "&goodsId=" .. goodsId
  69. -- cpOrderNostring 选传游戏订单号
  70. url = url .. "&cpOrderNostring=" .. cpOrderId
  71. -- orderSubject string 必传 订单标题
  72. url = url .. "&orderSubject=" .. goodsDesc
  73. -- roleName string必传 用户角色名
  74. url = url .. "&roleName=" .. self.roleName
  75. -- serverName string必传游戏服务器名
  76. url = url .. "&serverName=" .. self.serverName
  77. -- goodsName string必传 商品名称
  78. url = url .. "&goodsName=" .. goodsName
  79. -- roleLevel int 必传 用户角色等级
  80. url = url .. "&roleLevel=" .. self.roleLevel
  81. -- extrasParams string必传 订单保留参数,原样返回给cp
  82. url = url .. "&extrasParams=" .. extrasParams
  83. -- callbackUrl string 选传订单回调地址,就是通知cp服务器发货的通知地址
  84. url = url .. "&callbackUrl=" .. cbUrl
  85. -- payTypestring 选传 支付方式ID,ID获取请参照SDK后台“平台管理”>“支付对照表”。支持多种支付方式,多个支付方式以“|”隔开,比如:12|13|23注意:支付方式ID需满足后台勾选已经支持的第三方支付方式,否则无法显示指定支付方式渠道
  86. -- countryCode string 选传国家代码,如CHN。获取请参照SDK后台“平台管理”>“地区管理”注意:国家代码需满足后台勾选已经支持的第三方支付方式,否则无法显示指定国家的支付
  87. -- clientLang string 必传支付中心语言包,填写地区语言代码,如en-US。默认为中文繁体
  88. -- payVersion int 选传 第三方支付版本,默认不填写为SDK常规版本。取固定值为:2. 表示平台单独处理版本,此版本平台需传金额和币种进行支付并且SDK不参与商品金额的转换由平台自身处理,平台根据自身情况酌情考虑使用。
  89. -- amount float 选传 订单金额。如果payVersion的值为2,则必传amount字段
  90. url = url .. "&amount=" .. amount
  91. -- currency string 选传 选传 订单支付的币种代码。如果payVersion的值为2,则必传currency字段注意:支付币种代码必须为SDK后台货币管理里面所支持的货币代码
  92. -- sign string 必传 签名串,算法详见第三章签名算法描述
  93. url = url .. "&sign=" .. self.sign
  94. return url
  95. end
  96. return OpenPayMgr