You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

185 lines
4.7 KiB

  1. -- 充值界面
  2. local RechargeViewChoice = class("RechargeViewChoice", cc.UIView)
  3. --[[
  4. ["10212"] = {
  5. ["currency"] = 2,
  6. ["desc"] = ,
  7. ["ext"] = {
  8. },
  9. ["icon"] = http://img.dingdingqipai.com/images/goods/5cf0d78bb8eef.png?v=1559287691,
  10. ["id"] = 10212,
  11. ["name"] = 250房卡,
  12. ["number"] = 250,
  13. ["order"] = 12,
  14. ["pay_type"] = {
  15. [1] = {
  16. ["id"] = 1,
  17. ["name"] = 苹果支付,
  18. },
  19. },
  20. ["price"] = 50,
  21. ["privilege_icon"] = ,
  22. ["product_id"] = com_dangdang_chuannan_50,
  23. ["prop_id"] = 0,
  24. ["type"] = 0,
  25. },
  26. --]]
  27. function RechargeViewChoice:ctor(rechargeData, callback)
  28. RechargeViewChoice.super.ctor(self)
  29. self:loadUI()
  30. self.rechargeData = rechargeData
  31. end
  32. function RechargeViewChoice:loadUI()
  33. self.ui = loadUI("res/ui/ui_dating/ui_chongzhi_xuanze.ui")
  34. self:addChild(self.ui)
  35. end
  36. function RechargeViewChoice:onEnter()
  37. RechargeViewChoice.super.onEnter(self)
  38. -- --跳转网页支付
  39. -- self.ui.Items.Button_html5:registerClick(handler(self , self.onClickHtml));
  40. -- --微信原生支付
  41. -- self.ui.Items.Button_weixin:registerClick(handler(self , self.onClickWeixin));
  42. -- 关闭
  43. self.ui.Items.Layout_touch:registerClick(handler(self, self.onClickClose));
  44. local rechargeData = self.rechargeData;
  45. local payqr = app.serverConfigs.clientConfig.payqr
  46. local isShowPayQR = (payqr and payqr ~= "") and self:isShowPayQR()
  47. -- 如果system.clicfg有配置该字段,则显示支付宝和微信分享支付
  48. if isShowPayQR then
  49. self.ui.Items.Layout_Pay:setVisible(false)
  50. self.ui.Items.Layout_Pay_2:setVisible(true)
  51. local alipayInfo = nil -- 支付宝支付列表
  52. for k, v in pairs(rechargeData.pay_type) do
  53. if v.id == PayType.PAY_TYPE_ALIPAY then
  54. alipayInfo = v
  55. break
  56. end
  57. end
  58. if alipayInfo then
  59. -- 支付宝
  60. local ui = self.ui.Items.Layout_Item:getCopied()
  61. ui.Items = getUIItems(ui)
  62. --支付名
  63. ui.Items.Text_Name:setText("支付宝支付")
  64. --图标
  65. if alipayInfo.id == PayType.PAY_TYPE_ALIPAY then
  66. ui.Items.Button_Pay:loadTextureNormal("res/ui/zy_tongyong/zy_icon/icon_alipay.png")
  67. end
  68. --按钮事件
  69. ui.Items.Button_Pay:registerClick(function()
  70. app.phpShop:getOrderID(rechargeData.id, tonumber(alipayInfo.id))
  71. self:onClickClose()
  72. end)
  73. self.ui.Items.Layout_Alipay:addChild(ui)
  74. local str = self:getKeFuString()
  75. self.ui.Items.Text_Wechat:setString(str)
  76. else
  77. local pos = self.ui.Items.Layout_Wechat:getPositionPercent()
  78. self.ui.Items.Layout_Wechat:setPositionPercent(cc.p(0.5, pos.y))
  79. self.ui.Items.Text_Wechat:setVisible(false)
  80. self.ui.Items.ImageView_Line:setVisible(false)
  81. pos = self.ui.Items.Text_Share:getPositionPercent()
  82. self.ui.Items.Text_Share:setPositionPercent(cc.p(0.5, pos.y))
  83. end
  84. local ui = self.ui.Items.Layout_Item:getCopied()
  85. ui.Items = getUIItems(ui)
  86. --支付名
  87. ui.Items.Text_Name:setText("微信支付")
  88. --按钮事件
  89. ui.Items.Button_Pay:registerClick(function()
  90. local callback = function (fullPath)
  91. logD("RechargeViewChoice share path:", fullPath)
  92. local info = {}
  93. info.scene = "talk"
  94. info.contentType = "image"
  95. info.image = fullPath
  96. info.imageWidth = 1000
  97. info.thumbWidth = 100
  98. app.plugin:shareGame(info)
  99. log("分享支付二维码:",table.tostring(info))
  100. end
  101. local urlfile = convertIconUrl(payqr)
  102. local fileName = getImageNameFromUrl(urlfile)
  103. local fullPath = cc.FileUtils:getInstance():getWritablePath()..fileName;
  104. local isExist = cc.FileSystem:fileExists(fullPath)
  105. if not isExist then
  106. getImageFromUrlWithTime(payqr, fileName, nil, function()
  107. callback(fullPath)
  108. end)
  109. else
  110. callback(fullPath)
  111. end
  112. self:onClickClose()
  113. end)
  114. self.ui.Items.Layout_Wechat:addChild(ui)
  115. else
  116. -- 正常显示
  117. self.ui.Items.Layout_Pay:setVisible(true)
  118. self.ui.Items.Layout_Pay_2:setVisible(false)
  119. for k,v in pairs(rechargeData.pay_type) do
  120. local ui = self.ui.Items.Layout_Item:getCopied()
  121. self.ui.Items.Layout_Pay:addChild(ui)
  122. ui.Items = getUIItems(ui)
  123. --支付名
  124. ui.Items.Text_Name:setText(v.name or "")
  125. --图标
  126. --res/ui/zy_tongyong/zy_icon/icon_weixin.png
  127. if v.id == PayType.PAY_TYPE_ALIPAY then
  128. ui.Items.Button_Pay:loadTextureNormal("res/ui/zy_tongyong/zy_icon/icon_alipay.png")
  129. end
  130. --按钮事件
  131. ui.Items.Button_Pay:registerClick(function()
  132. if v.id == PayType.Apple then
  133. app.plugin:payIosPay(self.rechargeData);
  134. else
  135. app.phpShop:getOrderID(rechargeData.id, tonumber(v.id))
  136. end
  137. self:onClickClose()
  138. end)
  139. end
  140. end
  141. --隐藏模板
  142. self.ui.Items.Layout_Item:setVisible(false)
  143. end
  144. function RechargeViewChoice:onClickClose()
  145. playBtnCloseEffect()
  146. self:removeFromParent()
  147. end
  148. function RechargeViewChoice:getKeFuString()
  149. return ""
  150. end
  151. function RechargeViewChoice:isShowPayQR()
  152. return false
  153. end
  154. return RechargeViewChoice