public APIResponse ReceiveNotify(CrossoffAccountRequest model) { Stream stream = HttpContext.Current.Request.InputStream; stream.Seek(0, SeekOrigin.Begin); string postData = new StreamReader(stream).ReadToEnd(); Log.Info("测试数据YBS_ReceiveNotify:" + postData); CrossoffAccountRequest request = Newtonsoft.Json.JsonConvert.DeserializeObject <CrossoffAccountRequest>(postData); CrossoffAccountRequestBody requestBody = request.request; YBS_ReceiveNotifyLog receiveNotifyLog = new YBS_ReceiveNotifyLog(); receiveNotifyLog.Bankcardnumber = requestBody.bankcardnumber; receiveNotifyLog.Channel = requestBody.channel; receiveNotifyLog.Datetime = requestBody.datetime; receiveNotifyLog.Merchantcode = requestBody.merchantcode; receiveNotifyLog.Money = requestBody.money; receiveNotifyLog.Paymentnumber = requestBody.paymentnumber; receiveNotifyLog.Serialnumber = requestBody.serialnumber; receiveNotifyLog.State = requestBody.state; receiveNotifyLog.Terminalnumber = requestBody.terminalnumber; receiveNotifyLog.Transactioncode = requestBody.transactioncode; IResult result = BizFactory.Pay.ResultNotify(0, ResultNotifyParty.Ybs, receiveNotifyLog); return(new APIResponse(result)); }
private CustomJsonResult YBS_ResultNotify(int operater, YBS_ReceiveNotifyLog receiveNotifyLog) { CustomJsonResult result = new CustomJsonResult(); try { using (TransactionScope ts = new TransactionScope()) { YBS_CrossoffAccountRespone responeModel = new YBS_CrossoffAccountRespone(); receiveNotifyLog.CreateTime = this.DateTime; receiveNotifyLog.Creator = operater; var order = CurrentDb.Order.Where(m => m.Sn == receiveNotifyLog.Paymentnumber).FirstOrDefault(); if (order != null) { responeModel.serialnumber = receiveNotifyLog.Serialnumber; responeModel.transactioncode = "02"; responeModel.datetime = receiveNotifyLog.Datetime; responeModel.merchantcode = "654321"; responeModel.money = order.Price.ToF2Price(); responeModel.paymentnumber = order.Sn; responeModel.username = order.Contact; responeModel.username2 = ""; responeModel.businessname = ""; responeModel.returncode = "01"; responeModel.returnmsg = "交易成功"; switch (order.ProductType) { case Enumeration.ProductType.InsureForCarForInsure: case Enumeration.ProductType.InsureForCarForRenewal: result = PayCarInsureCompleted(operater, order.Sn); break; case Enumeration.ProductType.InsureForCarForClaim: result = PayCarClaimCompleted(operater, order.Sn); break; case Enumeration.ProductType.PosMachineDepositRent: result = PayDepositRentCompleted(operater, order.Sn); break; case Enumeration.ProductType.PosMachineRent: result = PayRentCompleted(operater, order.Sn); break; } } CurrentDb.YBS_ReceiveNotifyLog.Add(receiveNotifyLog); CurrentDb.SaveChanges(); ts.Complete(); } } catch (Exception ex) { Log.ErrorFormat("订单号({0})结果反馈发生异常,易办事调用原因:{1}", receiveNotifyLog.Paymentnumber, ex.StackTrace); result = new CustomJsonResult(ResultType.Exception, ResultCode.Exception, "支付失败"); } return(result); }