public void ValidateTest()
        {
            var target = new SpGatewayResponse()
            {
                MerchantId = "AAA",
                Status     = "SUCCESS",
                Version    = "1.4",
                TradeInfo  = "ff91c8aa01379e4de621a44e5f11f72e4d25bdb1a18242db6cef9ef07d80b0165e476fd1d9acaa53170272c82d122961e1a0700a7427cfa1cf90db7f6d6593bbc93102a4d4b9b66d9974c13c31a7ab4bba1d4e0790f0cbbbd7ad64c6d3c8012a601ceaa808bff70f94a8efa5a4f984b9d41304ffd879612177c622f75f4214fa",
                TradeSha   = "EA0A6CC37F40C1EA5692E7CBB8AE097653DF3E91365E6A9CD7E91312413C7BB8",
                Key        = "12345678901234567890123456789012",
                Vi         = "1234567890123456"
            };

            Assert.AreEqual(false, target.Validate("asb"));
            Assert.AreEqual(true, target.Validate("AAA"));
        }
        public void GetResponseModelTest()
        {
            var target = new SpGatewayResponse()
            {
                MerchantId = "MS31756909",
                Status     = "SUCCESS",
                Version    = "1.4",
                TradeInfo  = "9d9d94de7cdaa5c73ba288bb9fafac953691b4e72d865e4e098d7e96eded1122d4accc05946ccec051dd621b070cad3a7ff98656178bcfebbbd76b6fe11684476a0d4815c67195694106b33f6a922398047291f5775c2202553896d4b6abbdf5df5e0e86af72ae9b41329657b4e23dd9ec287464186928f30ee0fd859ed96c6982ccae7836102e97402699a2c780a08fa564a04bda3e7ca305efba44f535f0dbb4f54bea55fc56512a97910fd13712ea046d7c411ce2385fba959241899dbc60eeb4ebe54fe76a14087e3e979217ecfb111406b1c64c6f4a66186fab9eb0c4566909a128d6743e2bf560ce699eaa97a01b983be4b09dc706e69927d271443a3d3bb23789991893043c5c929d6f2586d82f920eb7c6075efa4d3019b13daca3f456448b4d8da93d6243962a062c70c603dea5c1ef60df97b3185302a83bc512bf43462321eeae92f064b2d33c8d2c434e3fbc83b3cad22f6b48f2b690395a0f08",
                TradeSha   = "0F271B65D055B3264D6C6C00FD6FDCC6BC7F653F8DAC38399C158F54AB2375B6",
                Key        = "xbEznJ0PExvWzd5ct72dLPCMPIBUw8K3",
                Vi         = "kpDI8DxNb2JKgOXK"
            };
            var actual = target.GetResponseModel <TradeInfoModel>();

            var expected = new TradeInfoModel
            {
                Status  = "SUCCESS",
                Message = "\u4ed8\u6b3e\u6210\u529f",
                Result  = new Result
                {
                    MerchantID      = "MS31756909",
                    Amt             = 900,
                    TradeNo         = "17060802213088297",
                    MerchantOrderNo = "636324851460397211",
                    RespondType     = "JSON",
                    IP                = "180.217.182.136",
                    EscrowBank        = "Esun",
                    PaymentType       = "WEBATM",
                    PayTime           = "2017-06-08 02:21:30",
                    PayerAccount5Code = "12345",
                    PayBankCode       = "808"
                }
            };

            expected.ShouldBeEquivalentTo(actual);
        }
Exemple #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string _key = "CD9Zyfb82BIFpnYY2JUppiF4a3f1FB1B";

        _key = "By8IMdyhhfeTTgACeHciAYe6bGrXc6bA";
        string _Vi = "jXbof2czX0r9FxBf";

        _Vi = "hiDG6VP3CrOA32bM";
        SpGatewayResponse spg = new SpGatewayResponse();

        spg.Key        = _key;
        spg.Vi         = _Vi;
        spg.Status     = Request["Status"];
        spg.MerchantId = Request["MerchantID"];
        spg.TradeInfo  = Request["TradeInfo"];
        spg.SaveLog();
        spg.AddAtmlog();


        if (Session["ord_code"] != null)
        {
            ord_code = Session["ord_code"].ToString();
        }
        if (Request.QueryString["ord_code"] != null)
        {
            ord_code = Request.QueryString["ord_code"];
        }
        if (ord_code == "")
        {
            Response.End();
        }
        ord_code = classlib.RemoveBadSymbol(ord_code);
        DataTable           dt     = new DataTable();
        string              strsql = @"update   tbl_OrderData   set paid= 'Y', status =2  where ord_code=@ord_code";
        NameValueCollection nvc    = new NameValueCollection
        {
            { "ord_code", ord_code }
        };

        DbControl.Data_add(strsql, nvc);

        strsql = @"select *  FROM      tbl_OrderData  where ord_code=@ord_code";
        dt     = DbControl.Data_Get(strsql, nvc);
        string ord_id = dt.Rows[0]["ord_id"].ToString();

        ord_tel    = dt.Rows[0]["ordphone"].ToString();
        ord_pay    = OrderLib.getPaymode(dt.Rows[0]["paymode"].ToString());
        ord_status = dt.Rows[0]["status"].ToString();
        ord_date   = DateTime.Parse(dt.Rows[0]["crtdat"].ToString()).ToString("yyyy/MM/dd");

        ord_totalprice = "$" + dt.Rows[0]["TotalPrice"].ToString();
        ord_name       = dt.Rows[0]["ordname"].ToString();

        ord_address = dt.Rows[0]["ordaddress"].ToString();
        ord_email   = dt.Rows[0]["email"].ToString();
        ord_tel     = dt.Rows[0]["ordphone"].ToString();


        ord_ship_name = dt.Rows[0]["ordname"].ToString();
        ord_ship_tel  = dt.Rows[0]["ordphone"].ToString();
        email         = dt.Rows[0]["email"].ToString();

        ord_ship_name = dt.Rows[0]["ordname"].ToString();

        strsql = @"select *  FROM    tbl_OrderDetail INNER JOIN
                            tbl_productData ON tbl_OrderDetail.p_id = tbl_productData.p_id where ord_id=@ord_id";
        nvc.Clear();
        nvc.Add("ord_id", ord_id);
        dt = DbControl.Data_Get(strsql, nvc);

        temp_product.DataSource = dt;
        temp_product.DataBind();
    }
        public ActionResult bluenewRequest(SpGatewayResponse response)
        {
            // Product productModel = new MallRepository().Get(pm);
            //User.Identity.GetUserId()

            /* var user = UserManager.FindById(User.Identity.GetUserId());
             *
             *   ProductRecord assr = new ProductRecord
             *   {
             *       UserID = User.Identity.GetUserId(),
             *       unitSn = 1,
             *       assets = (double)productModel.transform,
             *       inpdate = DateTime.Now,
             *       type = 1,
             *       ProductId = pm
             *   };
             *   new AssetsRepository().AddBearByAssets(assr);*/
            //new AssetsRepository().AddAssetsByAssets(AssetsRecord ar)
            ///return Json(result, "application/json", JsonRequestBehavior.AllowGet);
            ///
            //var json = DecryptAES256(TradeInfo.ToString());

            response.Key = "CON3KthrvPulsAWQQiQ3jsswLIzxxgQK";
            response.Vi  = "ugZbqRhI6x5LGI94";
            var success = response.Validate("MS15822085");

            if (success)
            {
                var tradInfoModel = response.GetResponseModel <TradeInfoModel>();
                //var OrderNoToProuctId = tradInfoModel.Result.MerchantOrderNo.OrderNoToProuctId();

                User_CashReturn user         = new MallRepository().GetUserPRecord(tradInfoModel.Result.MerchantOrderNo);
                Product         productModel = new MallRepository().Get((int)user.productId);


                ProductRecord assr = new ProductRecord
                {
                    UserID    = user.userId,
                    unitSn    = 1,
                    assets    = productModel.transform,
                    inpdate   = DateTime.Now,
                    type      = 1,
                    ProductId = productModel.id
                };
                new AssetsRepository().AddBearByAssets(assr);


                /* User_CashReturn re = new User_CashReturn
                 * {
                 *   Status = response.Status,
                 *   MerchantID = OrderNoToProuctId,
                 *   TradeInfo = response.TradeInfo,
                 *   TradeSha = response.TradeSha,
                 *   Version = "1.5"
                 * };
                 *
                 * new MallRepository().CreateReturnRecord(re);*/
                //return Json(re, "application/json", JsonRequestBehavior.AllowGet);
            }
            return(View());

            // var json = DecryptAES256(Tradeinfo);
            //string jsonString = JsonConvert.SerializeObject(json, Formatting.Indented, new JsonSerializerSettings { StringEscapeHandling = StringEscapeHandling.EscapeNonAscii });

            //var json = new string[]{ "123" };


            //return Json();
        }
Exemple #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string _key = "CD9Zyfb82BIFpnYY2JUppiF4a3f1FB1B";
        string _Vi  = "jXbof2czX0r9FxBf";
        //_key = "By8IMdyhhfeTTgACeHciAYe6bGrXc6bA";
        //_Vi = "hiDG6VP3CrOA32bM";
        SpGatewayResponse spg = new SpGatewayResponse
        {
            Key        = _key,
            Vi         = _Vi,
            Status     = Request["Status"],
            MerchantId = Request["MerchantID"],
            TradeInfo  = Request["TradeInfo"]
        };

        spg.SaveLog();
        spg.AddAtmlog();

        if (Session["ord_code"] != null)
        {
            ord_code = Session["ord_code"].ToString();
        }
        if (Request.QueryString["ord_code"] != null)
        {
            ord_code = Request.QueryString["ord_code"];
        }
        if (ord_code == "")
        {
            Response.End();
        }
        ord_code = classlib.RemoveBadSymbol(ord_code);
        SpGatewayHelper.Models.TradeInfoLog log = OrderLib.Get_Tradelog(ord_code);
        ord_status = log.Status;
        BankCode   = log.Result.BankCode;
        CodeNo     = log.Result.CodeNo;
        ExpireDate = log.Result.ExpireDate + " " + log.Result.ExpireTime;
        OrderLib.OrderData o      = OrderLib.Get_ordData(ord_code);
        string             ord_id = o.Ord_id.ToString();

        string site_name = HttpContext.Current.Application["site_name"].ToString();
        string filename  = HttpContext.Current.Server.MapPath("/templates/letter.html");
        string mailbody  = unity.classlib.GetTextString(filename);

        string atmmode = "<table><Tr><td colspan=2>您於「" + site_name + "」進行了ATM 轉帳交易,以下為您轉帳資訊</td></tr>";

        atmmode += "<tr><td>訂單編號</td><td>" + log.Result.MerchantOrderNo + "</td></tr>";
        atmmode += "<tr><td>銀行代碼</td><td>" + BankCode + "</td></tr>";
        atmmode += "<tr><td>帳號</td><td >" + CodeNo + "</td></tr>";
        atmmode += "<tr><td>金額</td><td >NT$" + log.Result.Amt + "</td></tr>";
        atmmode += "<tr><td>有效期限</td><td>" + ExpireDate + "</td></tr></table>";
        unity.classlib.SendsmtpMail(o.Ordemail, "ATM匯款帳號通知信", mailbody.Replace("@mailbody@", atmmode), "gmail");

        if (o.OrderDetail != null)
        {
            Response.Redirect("/completed.aspx");
            Response.End();
        }
        LessonLib.JoinData L = LessonLib.Web.Get_ord_JoinData(Session["ord_code"].ToString());
        if (L.JoinDetail != null)
        {
            Response.Redirect("/process-step4.aspx");
        }
    }
        public ActionResult bluenewRequest(SpGatewayResponse response)
        {
            //正式
            response.Vi  = "PmNER6HP23jikkcC";
            response.Key = "382go6Z9UrDy3XBuJnCHzNusEYFnBfls";

            //test
            //response.Key = "CON3KthrvPulsAWQQiQ3jsswLIzxxgQK";
            //response.Vi = "ugZbqRhI6x5LGI94";

            //test
            //var success = response.Validate("MS15822085");

            //正式
            var success = response.Validate("MS3276146654");

            if (success)
            {
                var tradInfoModel = response.GetResponseModel <TradeInfoModel>();
                var resuccess     = true;
                //var OrderNoToProuctId = tradInfoModel.Result.MerchantOrderNo.OrderNoToProuctId();
                var wait = new InvoiceRepository().GetWait(tradInfoModel.Result.MerchantOrderNo);
                var inv  = new InvoiceRepository().GetInvoice(wait.id);
                if (inv != null)
                {
                    resuccess = false;
                }

                if (resuccess)
                {
                    User_CashReturn user         = new MallRepository().GetUserPRecord(tradInfoModel.Result.MerchantOrderNo);
                    Product         productModel = new MallRepository().Get((int)user.productId);
                    Order           order        = new Order
                    {
                        UserId            = user.userId,
                        ProductId         = productModel.id,
                        Pay               = tradInfoModel.Result.PaymentType,
                        Order_No          = tradInfoModel.Result.MerchantOrderNo,
                        PayStore          = tradInfoModel.Result.PayStore,
                        Barcode_1         = tradInfoModel.Result.Barcode_1,
                        Barcode_2         = tradInfoModel.Result.Barcode_2,
                        Barcode_3         = tradInfoModel.Result.Barcode_3,
                        PayBankCode       = tradInfoModel.Result.PayBankCode,
                        CodeNo            = tradInfoModel.Result.CodeNo,
                        PayerAccount5Code = tradInfoModel.Result.PayerAccount5Code,
                        inpdate           = tradInfoModel.Result.PayTime
                    };

                    //加入購物記錄
                    var reutrnorder = new MallRepository().OrderCreate(order);



                    ProductRecord assr = new ProductRecord
                    {
                        UserID    = user.userId,
                        unitSn    = 1,
                        assets    = productModel.transform,
                        inpdate   = DateTime.Now,
                        type      = 1,
                        ProductId = productModel.id
                    };
                    new AssetsRepository().AddBearByAssets(assr);

                    var pr = new PreferentialRepository().getPRecordsAll(user.userId).Where(x => x.PreferentialID == 5 && x.productID == productModel.id).FirstOrDefault();
                    //2倍

                    /*
                     * if (pr.Count != 0)
                     * {
                     *  assr = new ProductRecord
                     *  {
                     *      UserID = user.userId,
                     *      unitSn = 1,
                     *      assets = productModel.transform,
                     *      inpdate = DateTime.Now,
                     *      type = 5,
                     *      ProductId = productModel.id
                     *  };
                     *  new AssetsRepository().AddBearByAssets(assr);
                     *  var prds = new PreferentialRecords
                     *  {
                     *      id = pr.id,
                     *      UserId = user.userId,
                     *      Count = 0,
                     *      inpdate = DateTime.Now,
                     *      PreferentialID = pr.PreferentialID,
                     *      productID = pr.productID
                     *  };
                     *  new PreferentialRepository().PRecordsUpdate(prds);
                     * }*/



                    //普通首儲

                    /*if(pr.Count != 0)
                     * {
                     *  assr = new ProductRecord
                     *  {
                     *      UserID = user.userId,
                     *      unitSn = 1,
                     *      assets = new PreferentialRepository().getpreferential(1).assets,
                     *      inpdate = DateTime.Now,
                     *      type = 5,
                     *      ProductId = productModel.id
                     *  };
                     *  new AssetsRepository().AddBearByAssets(assr);
                     *  var prds = new PreferentialRecords {
                     *      id = pr.id,
                     *      UserId = user.userId,
                     *      Count = 0,
                     *      inpdate = DateTime.Now,
                     *      PreferentialID = 1
                     *  };
                     *  new PreferentialRepository().PRecordsUpdate(prds);
                     * }*/
                    //InvoiceModel invoice = new InvoiceModel();
                    //發送發票
                    var smilePayEinvoice = new InvoiceRepository().invoiceSend(tradInfoModel.Result.MerchantOrderNo, productModel);

                    Invoice invoice = new Invoice
                    {
                        invoiceNumber = smilePayEinvoice.InvoiceNumber,
                        RandomNumber  = smilePayEinvoice.RandomNumber,
                        inpdate       = DateTime.Parse(smilePayEinvoice.InvoiceDate + " " + smilePayEinvoice.InvoiceTime),
                        IwaitId       = wait.id,
                        CarrierID     = smilePayEinvoice.CarrierID,
                        orderId       = reutrnorder.id
                    };


                    new InvoiceRepository().InvoiceCreate(invoice);
                }
            }
            return(View());
        }