Commit 5fbbad7c2d8967ab4cebefa54e61d6b3e3c11d64

Authored by jiyue
2 parents 9254aed5 7e61a962

Merge branch 'cn/develop' into cn/publish/preview

src/ProtocolCode.lua
... ... @@ -232,6 +232,7 @@ actionCodes = {
232 232 Store_getTotalRechargeAwardRpc = 564, -- 累计充值
233 233 Store_monthCardRewardRpc = 565, --每日月卡+特刊奖励
234 234 Store_dyhxAndroidRechargeRpc = 566, -- 东银河充值
  235 + Store_getCpOrderIdRpc = 567, -- 生成充值订单号
235 236  
236 237 Store_biliCloudRechargeRpc = 596,
237 238 Store_biliAndroidRechargeRpc = 597,
... ...
src/actions/RoleAction.lua
... ... @@ -334,6 +334,7 @@ function _M.loginRpc( agent, data )
334 334  
335 335 local hangPass = role:getProperty("hangPass")
336 336 role:mylog("login", {key1 = agent.ip:toArray(false, ":")[1], int1 = hangPass[1] or 0})
  337 + role:onUploadLoginout(1, agent.client_fd)
337 338  
338 339 -- 是否是新设备
339 340 local deviced = cluster.query("center", "deviced")
... ...
src/actions/StoreAction.lua
... ... @@ -281,6 +281,37 @@ function _M.dyhxAndroidRechargeRpc(agent, data)
281 281 return true
282 282 end
283 283  
  284 +local rechargeHandler = {
  285 + ali = function(cp_order_id, rechargeId, result)
  286 + end,
  287 + wx = function(cp_order_id, rechargeId, result)
  288 + end,
  289 +}
  290 +
  291 +function _M.getCpOrderIdRpc(agent, data)
  292 + local role = agent.role
  293 + local msg = MsgPack.unpack(data)
  294 + local id = msg.id
  295 + local type = msg.skd_type or ""
  296 + local choose = msg.choose or ""
  297 + local dataSet = csvdb["shop_rechargeCsv"][id]
  298 + if not dataSet then return end
  299 + local roleId = role:getProperty("id")
  300 +
  301 + role.ignoreHeartbeat = true
  302 + --创建订单号
  303 + local partnerOrderId = role:getPurchaseOrder(id,nil,choose)
  304 +
  305 + local result = {}
  306 + result["order"] = partnerOrderId
  307 + local handler = rechargeHandler[type]
  308 + if handler then
  309 + handler(partnerOrderId, id, result)
  310 + end
  311 +
  312 + SendPacket(actionCodes.Store_getCpOrderIdRpc, MsgPack.pack(result))
  313 +end
  314 +
284 315  
285 316 function _M.purchaseOrderResult(agent, data)
286 317 local role = agent.role
... ...
src/agent.lua
... ... @@ -295,6 +295,7 @@ function CMD.close()
295 295 role:log("onLogout", {logtime = skynet.timex()-role:getProperty("ltime")})
296 296 role:mylog("logout", {int1 = skynet.timex()-role:getProperty("ltime")})
297 297 role:onOfflineEvent()
  298 + role:onUploadLoginout(0, agentInfo.client_fd)
298 299 end
299 300  
300 301 function CMD.exit()
... ...
src/models/RolePlugin.lua
... ... @@ -36,6 +36,26 @@ function RolePlugin.bind(Role)
36 36 self:saveRoleData()
37 37 end
38 38  
  39 + -- 上报中宣数据
  40 + function Role:onUploadLoginout(bt, session)
  41 + local uid = self:getProperty("uid")
  42 + local id = self:getProperty("id")
  43 + local time = skynet.timex()
  44 + local si = string.format("%s_%s", id, session)
  45 + local info = {{si = si, bt = bt, ot = time}}
  46 +
  47 + local codeurl = skynet.getenv("codeurl")
  48 + local content = {
  49 + ["si"] = si,
  50 + ["bt"] = bt,
  51 + ["ot"] = time,
  52 + ["uid"] = uid,
  53 + ["key"] = "zhaolugame20170831",
  54 + }
  55 + dump(content)
  56 + httpc.get(codeurl, "/collect?" .. httpGetFormatData(content), {})
  57 + end
  58 +
39 59 local function checkItemCount(self, itemId, count)
40 60 local itemData = csvdb["itemCsv"][itemId]
41 61 -- 种类 类型数量限制
... ... @@ -2410,11 +2430,20 @@ function RolePlugin.bind(Role)
2410 2430 end
2411 2431 local rechargeId = back
2412 2432 local rechargeData = csvdb["shop_rechargeCsv"][rechargeId]
2413   - if (params.is_mycard and rechargeData.twd * 100 ~= tonumber(params.amount)) or (not params.is_mycard and ((rechargeData.rmb * 100) / globalCsv.QArecharge) ~= tonumber(params.amount)) then
2414   - skynet.error(string.format("[recharge] fake order: %s, roleId: %d, order: %s, rmb %s, get %s",
2415   - params.transactionId, roleId, partnerOrderStr, rechargeData.rmb, params.amount
2416   - ))
2417   - return
  2433 + if params.amount == 0 then
  2434 + if params.product_id ~= rechargeData.iap_product_id then
  2435 + skynet.error(string.format("[recharge] fake order: %s, roleId: %d, order: %s, rmb %s, get %s",
  2436 + params.transactionId, roleId, partnerOrderStr, rechargeData.iap_product_id, params.product_id
  2437 + ))
  2438 + return
  2439 + end
  2440 + else
  2441 + if (params.is_mycard and rechargeData.twd * 100 ~= tonumber(params.amount)) or (not params.is_mycard and ((rechargeData.rmb * 100) / globalCsv.QArecharge) ~= tonumber(params.amount)) then
  2442 + skynet.error(string.format("[recharge] fake order: %s, roleId: %d, order: %s, rmb %s, get %s",
  2443 + params.transactionId, roleId, partnerOrderStr, rechargeData.rmb, params.amount
  2444 + ))
  2445 + return
  2446 + end
2418 2447 end
2419 2448  
2420 2449 local status, reward = self:recharge({
... ...