From 2bf99d62421094cf88530e308fd8ba2bf7e5e512 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Mon, 25 Jan 2021 17:38:22 +0800 Subject: [PATCH] 充值mycard --- src/actions/GmAction.lua | 6 ++++++ src/actions/HttpAction.lua | 9 +++++++++ src/models/RolePlugin.lua | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/actions/GmAction.lua b/src/actions/GmAction.lua index 85320d8..87e5f58 100644 --- a/src/actions/GmAction.lua +++ b/src/actions/GmAction.lua @@ -559,6 +559,12 @@ function _M.ayncPurchase(role, params) return role:handlePurchase(params) or "" end +-- 获取订单号 +function _M.getPurchaseOrder(role, params) + return role:getPurchaseOrderByPlatform(params) or "" +end + + function _M.cz(role, pms) local id = tonum(pms.pm1) local csvData = csvdb["shop_rechargeCsv"][id] diff --git a/src/actions/HttpAction.lua b/src/actions/HttpAction.lua index eff3d01..15ba210 100644 --- a/src/actions/HttpAction.lua +++ b/src/actions/HttpAction.lua @@ -147,6 +147,15 @@ function _M.gm_action(query) return status end +function _M.query_role(query) + if not query.uid then return "not found" end + local user = redisproxy:get(string.format("uid:%s", query.uid)) + if not user then return "not found" end + local roleId = redisproxy:get(string_format("user:%s", string.upper(user))) + if not roleId then return "not found" end + return json.encode({roleId, user}) +end + function _M.broadcast(query) local msg = {} local handle = { diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index a2e3886..1127e3a 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -1667,8 +1667,34 @@ function RolePlugin.bind(Role) self:updateProperty({field = "redp", value = redp}) end + -- 网页支付获取订单号 + function Role:getPurchaseOrderByPlatform(params) + local checkPlatform = { + ["mycard"] = "mycard_product_id", + } + local pidField = checkPlatform[params.payMode or ""] + if not pidField or not params.product_id or params.product_id == "" then + return "no product" + end + + for k , v in pairs(csvdb["shop_rechargeCsv"]) do + if not v[pidField] then return "no product" end + if v[pidField] == params.product_id then + if v.rmb ~= params.money then + return "error money" + end + -- 发现需要的id + local partnerOrderId = self:getPurchaseOrder(k, params.transactionId) + if partnerOrderId == "" then + return "no product" + end + return json.encode({order = partnerOrderId}) + end + end + end + -- 获取充值订单号 - function Role:getPurchaseOrder(rechargeId) + function Role:getPurchaseOrder(rechargeId, transactionId) local roleId = self:getProperty("id") local rechargeData = csvdb["shop_rechargeCsv"][rechargeId] if not rechargeData then @@ -1705,6 +1731,7 @@ function RolePlugin.bind(Role) order = partnerOrderId, rechargeId = rechargeId, createTime = skynet.timex(), + transactionId = transactionId, }) order:create() -- 正在进行中的订单 缓存 @@ -1783,6 +1810,7 @@ function RolePlugin.bind(Role) request.product_id = data.product_id request.pay_time = data.pay_time request.transactionId = data.order_no + request.extension_info = data.extension_info ]] function Role:handlePurchase(params) local roleId = self:getProperty("id") @@ -1813,6 +1841,10 @@ function RolePlugin.bind(Role) }) if not status then + if params.extension_info == "mycard_web" then + -- todo 发邮件 + skynet.error("mycard_web " .. params.order) + end SendPacket(actionCodes.Store_ayncPurchaseRpc, MsgPack.pack({ order = partnerOrderStr, result = "success", reward = reward})) end -- libgit2 0.21.2