public bool SaveAlipayRechargeRecord(AlipayRechargeRecord alipayRecord, CustomerMySqlTransaction myTrans) { MySqlCommand mycmd = null; try { mycmd = myTrans.CreateCommand(); string sqlText = "insert into alipayrechargerecord " + "(`out_trade_no`, `trade_type`,`alipay_trade_no`,`user_name`,`buyer_email`,`total_fee`,`value_rmb`,`pay_time`) " + " values (@out_trade_no, @trade_type, @alipay_trade_no,@user_name,@buyer_email,@total_fee,@value_rmb,@pay_time)"; mycmd.CommandText = sqlText; mycmd.Parameters.AddWithValue("@out_trade_no", alipayRecord.out_trade_no); mycmd.Parameters.AddWithValue("@trade_type", (int)alipayRecord.trade_type); mycmd.Parameters.AddWithValue("@alipay_trade_no", alipayRecord.alipay_trade_no); mycmd.Parameters.AddWithValue("@user_name", DESEncrypt.EncryptDES(alipayRecord.user_name)); mycmd.Parameters.AddWithValue("@buyer_email", alipayRecord.buyer_email); mycmd.Parameters.AddWithValue("@total_fee", alipayRecord.total_fee); mycmd.Parameters.AddWithValue("@pay_time", alipayRecord.pay_time); mycmd.Parameters.AddWithValue("@value_rmb", alipayRecord.value_rmb); mycmd.ExecuteNonQuery(); return(true); } finally { if (mycmd != null) { mycmd.Dispose(); } } }
public int CheckAlipayOrderBeHandled(string userName, string out_trade_no, string alipay_trade_no, decimal total_fee, string buyer_email, string pay_time) { try { AlipayRechargeRecord record = new AlipayRechargeRecord() { alipay_trade_no = alipay_trade_no, buyer_email = buyer_email, out_trade_no = out_trade_no, pay_time = Convert.ToDateTime(pay_time), total_fee = total_fee, value_rmb = total_fee * GlobalConfig.GameConfig.Yuan_RMB, user_name = userName }; bool isOK = OrderController.Instance.CheckAlipayOrderBeHandled(userName, out_trade_no, alipay_trade_no, total_fee, buyer_email, pay_time); LogHelper.Instance.AddInfoLog("玩家[" + userName + "] ---- alipay_trade_no: " + alipay_trade_no + "; out_trade_no:" + out_trade_no + "; CheckAlipayOrderBeHandled: " + isOK.ToString()); return(isOK ? OperResult.RESULTCODE_TRUE : OperResult.RESULTCODE_FALSE); } catch (Exception exc) { LogHelper.Instance.AddErrorLog("CheckAlipayOrderBeHandled Exception. " + " orderNumber: " + out_trade_no + ";" + " money: " + total_fee.ToString() + ";" + " payAlipayAccount: " + buyer_email, exc); return(OperResult.RESULTCODE_FALSE); } }
public void AsyncHandleExceptionAlipayRechargeRecord(AlipayRechargeRecord alipayrecord) { if (GlobalData.Client != null) { App.BusyToken.ShowBusyWindow("正在提交数据..."); GlobalData.Client.HandleExceptionAlipayRechargeRecord(alipayrecord, alipayrecord.out_trade_no); } }
public int AlipayCallback(AlipayRechargeRecord alipayRecord) { int result = OperResult.RESULTCODE_FALSE; AlipayTradeInType type = alipayRecord.trade_type; switch (type) { case AlipayTradeInType.BuyGoldCoin: result = this.GoldCoinOrderController.AlipayCallback(alipayRecord); break; case AlipayTradeInType.BuyMine: result = this.MineOrderController.AlipayCallback(alipayRecord); break; case AlipayTradeInType.BuyMiner: break; case AlipayTradeInType.BuyRMB: break; case AlipayTradeInType.BuyStone: //result = this.StoneOrderController.AlipayCallback(alipayRecord); break; case AlipayTradeInType.StackStoneBuy: result = this.StoneStackController.AlipayCallback(alipayRecord); break; case AlipayTradeInType.RemoteServerOnce: result = UserRemoteServerController.Instance.AlipayCallback(alipayRecord, RemoteServerType.Once); break; case AlipayTradeInType.RemoteServerOneMonth: result = UserRemoteServerController.Instance.AlipayCallback(alipayRecord, RemoteServerType.OneMonth); break; case AlipayTradeInType.RemoteServerThreeMonth: result = UserRemoteServerController.Instance.AlipayCallback(alipayRecord, RemoteServerType.ThreeMonth); break; case AlipayTradeInType.RemoteServerOneYear: result = UserRemoteServerController.Instance.AlipayCallback(alipayRecord, RemoteServerType.OneYear); break; default: break; } return(result); }
private void btnOK_Click(object sender, RoutedEventArgs e) { if (this.txtAlipayTradeNo.Text == "") { MessageBox.Show("请填写支付宝订单号"); return; } if (this.txtMyTradeNo.Text == "") { MessageBox.Show("请填写交易订单号"); return; } if (this.txtAlipayAccount.Text == "") { MessageBox.Show("请填写支付账户"); return; } if (this.numTotalFee.Value == 0) { MessageBox.Show("请输入支付金额(人民币元)"); return; } if (this.dpPayTime.SelectedDate == null) { MessageBox.Show("请选择支付日期和时间"); return; } if (this.numHour.Value == 0 && this.numMinute.Value == 0 && this.numSecond.Value == 0) { MessageBox.Show("请选择支付日期和时间"); return; } DateTime selectedDate = this.dpPayTime.SelectedDate.Value; DateTime payTime = new DateTime(selectedDate.Year, selectedDate.Month, selectedDate.Day, (int)this.numHour.Value, (int)this.numMinute.Value, (int)this.numSecond.Value); AlipayPayInfo = new AlipayRechargeRecord() { out_trade_no = this.txtMyTradeNo.Text, alipay_trade_no = this.txtAlipayTradeNo.Text, buyer_email = this.txtAlipayAccount.Text, user_name = this.txtBuyerUserName.Text, total_fee = (decimal)this.numTotalFee.Value, value_rmb = (decimal)this.numValueRMB.Value, pay_time = payTime }; this.DialogResult = true; }
/// <summary> /// /// </summary> /// <param name="out_trade_no"></param> /// <param name="alipay_trade_no"></param> /// <param name="total_fee">人民币,需换算为灵币</param> /// <param name="buyer_email"></param> /// <param name="succeed"></param> public int AlipayCallback(string userName, string out_trade_no, string alipay_trade_no, decimal total_fee, string buyer_email, string pay_time) { try { var existsAlipayRecord = DBProvider.AlipayRecordDBProvider.GetAlipayRechargeRecordByOrderNumber_OR_Alipay_trade_no(out_trade_no, alipay_trade_no); if (existsAlipayRecord != null) { if (existsAlipayRecord.buyer_email == buyer_email && existsAlipayRecord.total_fee == total_fee && existsAlipayRecord.user_name == userName) { return(OperResult.RESULTCODE_TRUE); } } AlipayRechargeRecord record = new AlipayRechargeRecord() { alipay_trade_no = alipay_trade_no, buyer_email = buyer_email, out_trade_no = out_trade_no, pay_time = Convert.ToDateTime(pay_time), total_fee = total_fee, value_rmb = total_fee * GlobalConfig.GameConfig.Yuan_RMB, user_name = userName }; if (userName == "WEB" && out_trade_no.StartsWith("0000")) { LogHelper.Instance.AddInfoLog("WEB端直接充值 ---- alipay_trade_no: " + alipay_trade_no + "; out_trade_no:" + out_trade_no + "; fee: " + total_fee); return(OperResult.RESULTCODE_TRUE); } LogHelper.Instance.AddInfoLog("玩家[" + userName + "] ---- alipay_trade_no: " + alipay_trade_no + "; out_trade_no:" + out_trade_no + "; fee: " + total_fee); if (record.value_rmb <= 0) { return(OperResult.RESULTCODE_FALSE); } int result = OrderController.Instance.AlipayCallback(record); return(result); } catch (Exception exc) { LogHelper.Instance.AddErrorLog("AlipayCallback Exception. " + " orderNumber: " + out_trade_no + ";" + " money: " + total_fee.ToString() + ";" + " payAlipayAccount: " + buyer_email, exc); return(OperResult.RESULTCODE_FALSE); } }
private void btnConfirmOrder_Click(object sender, RoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("确认订单支付成功,该操作不可恢复!", "确认订单成功", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { FillAlipayInfoWindow win = new FillAlipayInfoWindow(this._order.LockedByUserName, this._order.OrderNumber); if (win.ShowDialog() == true) { AlipayRechargeRecord alipayInfo = win.AlipayPayInfo; App.BusyToken.ShowBusyWindow("正在提交数据..."); GlobalData.Client.AgreeExceptionStoneOrder(alipayInfo); } } }
public int AlipayCallback(AlipayRechargeRecord alipayRecord) { StoneOrderRunnable runnable = FindOrderByOrderName(alipayRecord.out_trade_no); int result = CheckOrderStateBeforePay(runnable, alipayRecord.out_trade_no, alipayRecord.user_name, alipayRecord.value_rmb); if (result == OperResult.RESULTCODE_ORDER_BUY_SUCCEED) { return(result); } if (result != OperResult.RESULTCODE_TRUE) { LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 支付宝购买矿石失败。原因为:" + OperResult.GetMsg(result) + "。支付宝信息:" + alipayRecord.ToString() + (runnable == null ? "" : "LockedByUserName:" + runnable.LockedOrder.LockedByUserName)); return(result); } string sellerUserName = ""; var trans = MyDBHelper.Instance.CreateTrans(); try { DBProvider.AlipayRecordDBProvider.SaveAlipayRechargeRecord(alipayRecord, trans); //订单处理 var buyOrder = runnable.Pay(trans); if (buyOrder == null) { trans.Rollback(); LogHelper.Instance.AddInfoLog("支付宝支付矿石订单失败1。原因为:订单支付失败。alipayRecord: " + alipayRecord.ToString()); //如果支付失败,先将订单设为异常。 this.SetStoneOrderPayException(alipayRecord.user_name, alipayRecord.out_trade_no); return(OperResult.RESULTCODE_FALSE); } sellerUserName = buyOrder.StonesOrder.SellerUserName; //更新用户信息 result = PlayerController.Instance.PayStoneOrder(true, alipayRecord.user_name, buyOrder, trans); if (result != OperResult.RESULTCODE_TRUE) { trans.Rollback(); PlayerController.Instance.RefreshFortune(alipayRecord.user_name); PlayerController.Instance.RefreshFortune(sellerUserName); LogHelper.Instance.AddInfoLog("支付宝支付矿石订单失败2。原因为:" + OperResult.GetMsg(result) + "。alipayRecord: " + alipayRecord.ToString()); //如果支付失败,先将订单设为异常。 this.SetStoneOrderPayException(alipayRecord.user_name, alipayRecord.out_trade_no); return(result); } this.RemoveRecord(buyOrder.StonesOrder.OrderNumber); trans.Commit(); LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 用支付宝成功购买了,玩家[" + runnable.SellOrder.SellerUserName + "] 出售的矿石" + runnable.SellOrder.SellStonesCount + ", no: " + runnable.SellOrder.OrderNumber); AddLogNotifyPlayer(alipayRecord.user_name, runnable.OrderNumber, buyOrder); return(OperResult.RESULTCODE_TRUE); } catch (Exception exc) { result = OperResult.RESULTCODE_EXCEPTION; trans.Rollback(); PlayerController.Instance.RefreshFortune(alipayRecord.user_name); if (!string.IsNullOrEmpty(sellerUserName)) { PlayerController.Instance.RefreshFortune(sellerUserName); } //如果支付失败,先将订单设为异常。 this.SetStoneOrderPayException(alipayRecord.user_name, alipayRecord.out_trade_no); LogHelper.Instance.AddErrorLog("玩家[" + alipayRecord.user_name + "] 支付宝购买矿石回调异常. 支付宝信息: " + alipayRecord.ToString(), exc); return(result); } finally { if (trans != null) { trans.Dispose(); } } }
public AlipayRechargeRecordUIModel(AlipayRechargeRecord parent) { this.ParentObject = parent; this._tradeTypeText = GetTradeTypeText(parent.out_trade_no); }
public int AlipayCallback(AlipayRechargeRecord alipayRecord) { GoldCoinRechargeRecord rechargeRecord = FindRecordByOrderNumber(alipayRecord.out_trade_no); if (rechargeRecord == null) { rechargeRecord = DBProvider.GoldCoinRecordDBProvider.GetGoldCoinRechargeRecord(alipayRecord.user_name, alipayRecord.out_trade_no); if (rechargeRecord != null) { return(OperResult.RESULTCODE_ORDER_BUY_SUCCEED); } LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 支付宝购买金币回调,找不到订单。支付宝信息:" + alipayRecord.ToString()); return(OperResult.RESULTCODE_ORDER_NOT_EXIST); } CustomerMySqlTransaction myTrans = null; try { int value = OperResult.RESULTCODE_FALSE; myTrans = MyDBHelper.Instance.CreateTrans(); alipayRecord.user_name = rechargeRecord.UserName; if (alipayRecord.out_trade_no == rechargeRecord.OrderNumber && alipayRecord.value_rmb >= rechargeRecord.SpendRMB) { rechargeRecord.PayTime = DateTime.Now; value = PlayerController.Instance.RechargeGoldCoinByAlipay(rechargeRecord.UserName, alipayRecord.total_fee, (int)rechargeRecord.SpendRMB, (int)(rechargeRecord.SpendRMB * GlobalConfig.GameConfig.RMB_GoldCoin), myTrans); if (value == OperResult.RESULTCODE_TRUE) { DBProvider.GoldCoinRecordDBProvider.SaveFinalGoldCoinRechargeRecord(rechargeRecord, myTrans); DBProvider.GoldCoinRecordDBProvider.DeleteTempGoldCoinRechargeTradeRecord(rechargeRecord.OrderNumber, myTrans); this.RemoveRecord(alipayRecord.out_trade_no); string tokenBuyer = ClientManager.GetToken(rechargeRecord.UserName); if (GoldCoinOrderPaySucceedNotify != null) { GoldCoinOrderPaySucceedNotify(tokenBuyer, rechargeRecord.OrderNumber); } LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 成功充值" + rechargeRecord.GainGoldCoin + "金币。ano: " + alipayRecord.alipay_trade_no); } else { LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 金币充值失败,原因为:" + OperResult.GetMsg(value) + "。ano: " + alipayRecord.alipay_trade_no); } } DBProvider.AlipayRecordDBProvider.SaveAlipayRechargeRecord(alipayRecord, myTrans); myTrans.Commit(); return(value); } catch (Exception exc) { myTrans.Rollback(); PlayerController.Instance.RefreshFortune(alipayRecord.user_name); LogHelper.Instance.AddErrorLog("玩家[" + alipayRecord.user_name + "] 支付宝金币充值,回调异常。AlipayInfo : " + alipayRecord.ToString(), exc); return(OperResult.RESULTCODE_EXCEPTION); } finally { if (myTrans != null) { myTrans.Dispose(); } } }
public int AlipayCallback(AlipayRechargeRecord alipayRecord) { MinesBuyRecord buyRecord = FindRecordByOrderNumber(alipayRecord.out_trade_no); if (buyRecord == null) { buyRecord = DBProvider.MineRecordDBProvider.GetMineTradeRecord(alipayRecord.user_name, alipayRecord.out_trade_no); if (buyRecord != null) { return(OperResult.RESULTCODE_ORDER_BUY_SUCCEED); } LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 支付宝购买矿山回调,找不到订单。支付宝信息:" + alipayRecord.ToString()); return(OperResult.RESULTCODE_ORDER_NOT_EXIST); } CustomerMySqlTransaction myTrans = null; try { int result = OperResult.RESULTCODE_FALSE; myTrans = MyDBHelper.Instance.CreateTrans(); //alipayRecord.user_name = buyRecord.UserName; if (alipayRecord.value_rmb >= buyRecord.SpendRMB) { result = PlayerController.Instance.BuyMineByAlipay(buyRecord, alipayRecord.total_fee, myTrans); if (result == OperResult.RESULTCODE_TRUE) { buyRecord.PayTime = DateTime.Now; DBProvider.MineRecordDBProvider.SaveFinalMineTradeRecord(buyRecord, myTrans); DBProvider.MineRecordDBProvider.DeleteTempMineTradeRecord(buyRecord.OrderNumber, myTrans); this.RemoveRecord(alipayRecord.out_trade_no); string tokenBuyer = ClientManager.GetToken(buyRecord.UserName); if (!string.IsNullOrEmpty(tokenBuyer) && MineOrderPaySucceedNotify != null) { MineOrderPaySucceedNotify(tokenBuyer, buyRecord.OrderNumber); } LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 成功购买" + buyRecord.GainMinesCount + "座矿山。ano: " + alipayRecord.alipay_trade_no); } else { LogHelper.Instance.AddInfoLog("玩家[" + alipayRecord.user_name + "] 购买矿山失败,原因为:" + OperResult.GetMsg(result) + "。ano: " + alipayRecord.alipay_trade_no); } } DBProvider.AlipayRecordDBProvider.SaveAlipayRechargeRecord(alipayRecord, myTrans); myTrans.Commit(); PlayerActionController.Instance.AddLog(buyRecord.UserName, MetaData.ActionLog.ActionType.BuyMine, buyRecord.GainMinesCount, "增加了 " + buyRecord.GainStonesReserves.ToString() + " 的矿石储量"); return(result); } catch (Exception exc) { myTrans.Rollback(); PlayerController.Instance.RefreshFortune(alipayRecord.user_name); LogHelper.Instance.AddErrorLog("玩家[" + alipayRecord.user_name + "] 支付宝金币充值,回调异常。AlipayInfo : " + alipayRecord.ToString(), exc); return(OperResult.RESULTCODE_EXCEPTION); } finally { if (myTrans != null) { myTrans.Dispose(); } } }
public int AlipayCallback(AlipayRechargeRecord alipay, RemoteServerType serverType) { int result = OperResult.RESULTCODE_FALSE; MyDBHelper.Instance.TransactionDataBaseOper(myTrans => { DBProvider.AlipayRecordDBProvider.SaveAlipayRechargeRecord(alipay, myTrans); LogHelper.Instance.AddInfoLog("玩家 [" + alipay.user_name + "] 支付宝充值购买远程协助服务," + serverType.ToString() + ", Alipay:" + alipay.ToString()); result = OperResult.RESULTCODE_TRUE; return(result); }, exc => { if (exc != null) { LogHelper.Instance.AddErrorLog("远程协助1服务付款回调异常,AlipayInfo: " + alipay.ToString() + "; serverType: " + serverType.ToString(), exc); } result = OperResult.RESULTCODE_EXCEPTION; }); if (result != OperResult.RESULTCODE_TRUE) { return(result); } var serverItem = this.GetUserRemoteServerItem(serverType); if (serverItem == null) { LogHelper.Instance.AddInfoLog("玩家 [" + alipay.user_name + "] 支付宝充值购买远程协助服务失败1,原因为:" + OperResult.GetMsg(OperResult.RESULTCODE_BUYREMOTESERVER_FAILED_SERVERTYPEERROR)); return(OperResult.RESULTCODE_BUYREMOTESERVER_FAILED_SERVERTYPEERROR); } if (alipay.total_fee != serverItem.PayMoneyYuan) { LogHelper.Instance.AddInfoLog("玩家 [" + alipay.user_name + "] 支付宝充值购买远程协助服务失败2,原因为:" + OperResult.GetMsg(OperResult.RESULTCODE_BUYREMOTESERVER_FAILED_PAYEDMONEYERROR)); return(OperResult.RESULTCODE_BUYREMOTESERVER_FAILED_PAYEDMONEYERROR); } var playerRunner = PlayerController.Instance.GetRunnable(alipay.user_name); if (playerRunner == null) { LogHelper.Instance.AddInfoLog("玩家 [" + alipay.user_name + "] 支付宝充值购买远程协助服务失败3,原因为:" + OperResult.GetMsg(OperResult.RESULTCODE_USER_NOT_EXIST)); return(OperResult.RESULTCODE_USER_NOT_EXIST); } int getShoppingCredits = (int)alipay.total_fee * GlobalConfig.GameConfig.RemoteServerRechargeReturnShoppingCreditsTimes; MyDBHelper.Instance.TransactionDataBaseOper(myTrans => { result = playerRunner.BuyRemoteServer(alipay, serverType, myTrans); if (result != OperResult.RESULTCODE_TRUE) { LogHelper.Instance.AddInfoLog("玩家 [" + alipay.user_name + "] 支付宝充值购买远程协助服务失败4,原因为:" + OperResult.GetMsg(result)); return(result); } //玩家购买远程服务充值三层返利, if (!string.IsNullOrEmpty(playerRunner.BasePlayer.SimpleInfo.ReferrerUserName)) { //上一级 var parent1PlayerRunner = PlayerController.Instance.GetRunnable(playerRunner.BasePlayer.SimpleInfo.ReferrerUserName); if (parent1PlayerRunner != null) { parent1PlayerRunner.BuyShoppingCreditAwardParent(getShoppingCredits * GlobalConfig.GameConfig.BuyRemoteServiceAwardRMBConfig[0], myTrans); //上二级 if (!string.IsNullOrEmpty(parent1PlayerRunner.BasePlayer.SimpleInfo.ReferrerUserName)) { var parent2PlayerRunner = PlayerController.Instance.GetRunnable(parent1PlayerRunner.BasePlayer.SimpleInfo.ReferrerUserName); if (parent2PlayerRunner != null) { parent2PlayerRunner.BuyShoppingCreditAwardParent(getShoppingCredits * GlobalConfig.GameConfig.BuyRemoteServiceAwardRMBConfig[1], myTrans); //上三级 if (!string.IsNullOrEmpty(parent2PlayerRunner.BasePlayer.SimpleInfo.ReferrerUserName)) { var parent3PlayerRunner = PlayerController.Instance.GetRunnable(parent2PlayerRunner.BasePlayer.SimpleInfo.ReferrerUserName); if (parent3PlayerRunner != null) { parent3PlayerRunner.BuyShoppingCreditAwardParent(getShoppingCredits * GlobalConfig.GameConfig.BuyRemoteServiceAwardRMBConfig[2], myTrans); } } } } } } UserRemoteServerBuyRecord buyRecord = new UserRemoteServerBuyRecord() { UserID = playerRunner.BasePlayer.SimpleInfo.UserID, UserName = playerRunner.BasePlayer.SimpleInfo.UserLoginName, OrderNumber = alipay.out_trade_no, BuyRemoteServerTime = new MyDateTime(DateTime.Now), ServerType = serverType, PayMoneyYuan = (int)alipay.total_fee, GetShoppingCredits = getShoppingCredits }; DBProvider.UserRemoteServerDBProvider.SaveUserRemoteServerBuyRecord(buyRecord, myTrans); LogHelper.Instance.AddInfoLog("玩家 [" + alipay.user_name + "] 成功购买远程协助服务," + serverType.ToString() + ", Alipay:" + alipay.ToString()); result = OperResult.RESULTCODE_TRUE; return(result); }, exc => { if (exc != null) { LogHelper.Instance.AddErrorLog("远程协助服务付款回调异常,AlipayInfo: " + alipay.ToString() + "; serverType: " + serverType.ToString(), exc); } result = OperResult.RESULTCODE_EXCEPTION; }); return(result); }
public int AlipayCallback(AlipayRechargeRecord alipayRecord) { int result = OperResult.RESULTCODE_FALSE; var alipayRecordFromDB = DBProvider.AlipayRecordDBProvider.GetAlipayRechargeRecordByOrderNumber_OR_Alipay_trade_no(alipayRecord.out_trade_no, alipayRecord.alipay_trade_no); if (alipayRecordFromDB != null) { return(OperResult.RESULTCODE_ORDER_BUY_SUCCEED); } StoneDelegateBuyOrderInfo buyOrder = null; lock (_lockTempAlipayList) { for (int i = 0; i < _listTempAlipayBuyOrders.Count; i++) { if (_listTempAlipayBuyOrders[i].OrderNumber == alipayRecord.out_trade_no) { buyOrder = _listTempAlipayBuyOrders[i]; decimal valueRMB = buyOrder.BuyUnit.Price * buyOrder.BuyUnit.TradeStoneHandCount; if (alipayRecord.value_rmb < valueRMB) { buyOrder.BuyState = StoneDelegateBuyState.Exception; LogHelper.Instance.AddErrorLog(alipayRecord.ToString() + " 充值的灵币小于需要的灵币:" + valueRMB, null); } else { buyOrder.BuyState = StoneDelegateBuyState.Waiting; } this._listTempAlipayBuyOrders.RemoveAt(i); break; } } } if (buyOrder == null) { LogHelper.Instance.AddErrorLog("委托挂单购买矿石,支付宝回调,没有找到订单。" + alipayRecord.ToString(), null); } CustomerMySqlTransaction myTrans = MyDBHelper.Instance.CreateTrans(); try { DBProvider.AlipayRecordDBProvider.SaveAlipayRechargeRecord(alipayRecord, myTrans); if (buyOrder != null) { DBProvider.StoneStackDBProvider.UpdateWaitingStoneDelegateBuyOrderState(buyOrder.OrderNumber, buyOrder.BuyState, myTrans); } myTrans.Commit(); result = OperResult.RESULTCODE_TRUE; } catch (Exception exc) { myTrans.Rollback(); LogHelper.Instance.AddErrorLog("StoneStackControl.AlipayCallback.SaveAlipayRechargeRecord Exception. " + alipayRecord.ToString() + ". buyOrder: " + (buyOrder == null ? "NULL" : buyOrder.ToString()), exc); } finally { myTrans.Dispose(); } if (result == OperResult.RESULTCODE_TRUE) { if (buyOrder != null) { this.InsertToBuyQueue(buyOrder, null); } //PlayerActionController.Instance.AddLog(alipayRecord.user_name, MetaData.ActionLog.ActionType.DelegateBuyStone, buyOrder.BuyUnit.TradeStoneHandCount, ""); BuyOrderAlipayPaySucceedNotify(alipayRecord.user_name, alipayRecord.out_trade_no); } return(result); }
public void HandleExceptionAlipayRechargeRecord(AlipayRechargeRecord exceptionRecord, object userState) { this._invoker.InvokeUserState <int>(this._context, "HandleExceptionAlipayRechargeRecord", this.HandleExceptionAlipayRechargeRecordCompleted, userState, GlobalData.Token, exceptionRecord); }