Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }