| | |
| | | 该充值视为成功,并转化为对应代币,可以理解为类似充值点券,代币可用于下次充值时支付;
|
| | | '''
|
| | | orderInfo = addDRDict.get("orderInfo", "")
|
| | | orderCoin = addDRDict.get("orderCoin", 0)
|
| | | payCoin = addDRDict.get("payCoin", 0)
|
| | | payOrderType = addDRDict.get("payOrderType", PayOrderType_Default)
|
| | | if not orderCoin or not orderInfo:
|
| | | if not payCoin or not orderInfo:
|
| | | DataRecordPack.DR_CTGError(curPlayer, errorInfo, addDRDict)
|
| | | return
|
| | | eventName = addDRDict.get("eventName", "ExchangePayCoin")
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | befPayCoin = PlayerControl.GetPayCoin(curPlayer)
|
| | | drDict = {ChConfig.Def_Give_Reason_SonKey:orderInfo, "payOrderType":payOrderType, "orderInfo":orderInfo}
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, orderCoin, eventName, drDict)
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, payCoin, eventName, drDict)
|
| | | aftPayCoin = PlayerControl.GetPayCoin(curPlayer)
|
| | | GameWorld.Log("充值转化为代币: orderInfo=%s,orderCoin=%s,payOrderType=%s,eventName=%s,befPayCoin=%s,aftPayCoin=%s,errorInfo=%s" |
| | | % (orderInfo, orderCoin, payOrderType, eventName, befPayCoin, aftPayCoin, errorInfo), playerID)
|
| | | GameWorld.Log("充值转化为代币: orderInfo=%s,payCoin=%s,payOrderType=%s,eventName=%s,befPayCoin=%s,aftPayCoin=%s,errorInfo=%s" |
| | | % (orderInfo, payCoin, payOrderType, eventName, befPayCoin, aftPayCoin, errorInfo), playerID)
|
| | |
|
| | | addItemList = []
|
| | | paramList = [orderInfo, orderCoin]
|
| | | paramList = [orderInfo, payCoin]
|
| | | PlayerControl.SendMailByKey("ExchangeToPayCoin", [playerID], addItemList, paramList)
|
| | |
|
| | | if payOrderType != PayOrderType_PayCoin:
|
| | |
| | | discountState = PlayerSuperDiscount.GetSuperDiscountState(curPlayer)
|
| | | GameWorld.Log("英文1折充值验证至尊卡: orderInfo=%s,orderCoin=%s,orderID=%s" % (orderInfo, orderCoin, orderID), curPlayer.GetPlayerID())
|
| | | orderCoinUsd = orderCoin # 入库的是美元分
|
| | | payCoin = orderCoin
|
| | | orderCoin = CommFunc.RMBToCoin(ipyData.GetPayRMBNum()) # 游戏内orderCoin为原价
|
| | | usdMoney = ipyData.GetUsdMoney() if discountState else ipyData.GetPayRMBNum()
|
| | | GameWorld.Log(" 转化后: orderInfo=%s,orderCoin=%s,orderCoinUsd=%s" % (orderInfo, orderCoin, orderCoinUsd), curPlayer.GetPlayerID())
|
| | | GameWorld.Log(" 转化后: orderInfo=%s,orderCoin=%s,orderCoinUsd=%s,payCoin=%s" % (orderInfo, orderCoin, orderCoinUsd, payCoin), curPlayer.GetPlayerID())
|
| | | addDRDict["orderCoin"] = orderCoin
|
| | | addDRDict["orderCoinUsd"] = orderCoinUsd
|
| | | addDRDict["payCoin"] = payCoin # 英文1折版有游戏内折扣(越南版只有支付折扣,游戏内均为原价),所以英文1折版相当于实际折扣价值coin
|
| | | GameWorld.Log(" 充值验证: orderCoinUsd=%s,usdMoney=%s,discountState=%s" % (orderCoinUsd, usdMoney, discountState), curPlayer.GetPlayerID())
|
| | | if orderCoinUsd != CommFunc.RMBToCoin(usdMoney, 100):
|
| | | DataRecordPack.DR_CTGError(curPlayer, "The orderCoinUsd is not equal to the ipyData's UsdMoney(%s)! discountState=%s" % (usdMoney, discountState), addDRDict)
|
| | |
| | | GameWorld.ErrLog("代币可不用于支付代币充值!appID=%s,orderInfo=%s" % (appID, orderInfo), curPlayer.GetPlayerID())
|
| | | return
|
| | | #直接扣,类似充值扣钱,这里是发放物品,可能会有发放失败的当做 CTGError 处理
|
| | | if not PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, orderCoin, eventName, {ChConfig.Def_Cost_Reason_SonKey:orderInfo, "orderInfo":orderInfo}):
|
| | | GameWorld.ErrLog("代币不足! appID=%s,orderInfo=%s,orderCoin=%s,curPayCoin=%s" |
| | | % (appID, orderInfo, orderCoin, PlayerControl.GetPayCoin(curPlayer)), curPlayer.GetPlayerID())
|
| | | if not PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, payCoin, eventName, {ChConfig.Def_Cost_Reason_SonKey:orderInfo, "orderInfo":orderInfo}):
|
| | | GameWorld.ErrLog("代币不足! appID=%s,orderInfo=%s,payCoin=%s,curPayCoin=%s" |
| | | % (appID, orderInfo, payCoin, PlayerControl.GetPayCoin(curPlayer)), curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | | addDRDict["payOrderType"] = payOrderType
|