Exemplo n.º 1
0
        /// <summary>
        /// 3D Secure ile odeme metodudur. 3D sorgulamasi sonrasinda basarili sonuc alinmasini takiben cagrilmalidir. 3D sorgulamasi sonrasi odemenin otorizasyon asamasinin tamamlanmasini saglar.
        /// </summary>
        /// <param name="auth"> : odeme otorizasyonunun saglanmasi icin gerekli bilgileri iceren objedir.</param>
        public PaymetResponse PayThreeDResult(IparaAuth auth)
        {
            auth.CardExpireMonth    = null;
            auth.CardExpireYear     = null;
            auth.CardNumber         = null;
            auth.CardOwnerName      = null;
            auth.Purchaser.Name     = null;
            auth.Purchaser.SurName  = null;
            auth.Purchaser.Email    = null;
            auth.Purchaser.ClientIp = null;
            auth.ThreeD             = "true";

            string xmlData = IparaRequestUtil.SerializeObject(auth);

            if (!string.IsNullOrEmpty(xmlData))
            {
                string dateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

                string hashText = this.privateKey + auth.OrderId + auth.Amount + auth.Mode + auth.ThreeDSecureCode + dateTime;

                string token = this.publicKey + ":" + IparaRequestUtil.GetSHA1(hashText);

                string response = IparaRequestUtil.ApiRequest(token, this.version, dateTime, xmlData, this.authUrl);

                PaymetResponse paymentResponse = IparaRequestUtil.DeserializeObject <PaymetResponse>(response);

                ValidateResponse(paymentResponse);

                return(paymentResponse);
            }
            else
            {
                throw new Exception("Ödeme isteği gönderilirken beklenmedik bir hata oluştu!");
            }
        }
Exemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                IparaRequest   payment  = new IparaRequest(publicKey, privateKey);
                PaymetResponse response = payment.GetThreeDResponse(Request.Form);

                if (response == null)
                {
                    lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARISIZ";
                    return;
                }

                if (response.Result.Equals("1"))
                {
                    if (Session["Ipara-Auth"] == null)
                    {
                        lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARISIZ. Session bulunamadı.";
                        return;
                    }

                    IparaAuth auth = Session["Ipara-Auth"] as IparaAuth;
                    auth.ThreeDSecureCode = response.ThreeDSecureCode;
                    auth.Echo             = "Echo Bilgisi";
                    auth.VendorId         = this.vendorId;

                    response = payment.PayThreeDResult(auth);

                    if (response == null)
                    {
                        lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARISIZ. Response boş.";
                        return;
                    }

                    if (response.Result.Equals("1"))
                    {
                        lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARILI";
                    }
                    else
                    {
                        lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARISIZ. Error Kodu: " + response.Errorcode + " Error Mesajı: " + response.ErrorMessage;
                    }
                }
                else
                {
                    lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARISIZ. Error Kodu: " + response.Errorcode + " Error Mesajı: " + response.ErrorMessage;
                }
            }
            catch (Exception)
            {
                lblMessage.Text = "ÖDEME İŞLEMİNİZ BAŞARISIZ";
            }
        }
Exemplo n.º 3
0
        private bool ValidateResponse(PaymetResponse paymentResponse)
        {
            if (String.IsNullOrEmpty(paymentResponse.Hash))
            {
                throw new Exception("Ödeme cevabı hash bilgisi boş. [result : " + paymentResponse.Result + ",error_code : " + paymentResponse.Errorcode + ",error_message : " + paymentResponse.ErrorMessage + "]");
            }

            string hashText = paymentResponse.OrderId + paymentResponse.Result + paymentResponse.Amount + paymentResponse.Mode + paymentResponse.Errorcode +
                              paymentResponse.ErrorMessage + paymentResponse.TransactionDate + this.publicKey + this.privateKey;

            if (IparaRequestUtil.GetSHA1(hashText) != paymentResponse.Hash)
            {
                throw new Exception("Ödeme cevabı hash doğrulaması hatalı. [result : " + paymentResponse.Result + ",error_code : " + paymentResponse.Errorcode + ",error_message : " + paymentResponse.ErrorMessage + "]");
            }

            return(true);
        }
Exemplo n.º 4
0
        // 3D Secure Sonucunun Islenmesi ve Hash Gecerlilik Kontrolu
        public PaymetResponse GetThreeDResponse(System.Collections.Specialized.NameValueCollection keys)
        {
            PaymetResponse paymentResponse = new PaymetResponse();

            paymentResponse.Result  = keys["result"];
            paymentResponse.OrderId = keys["orderId"];
            paymentResponse.Amount  = keys["amount"];
            paymentResponse.Mode    = keys["mode"];

            if (keys["publicKey"] != null)
            {
                paymentResponse.PublicKey = keys["publicKey"];
            }

            if (keys["errorCode"] != null)
            {
                paymentResponse.Errorcode = keys["errorCode"];
            }

            if (keys["errorMessage"] != null)
            {
                paymentResponse.ErrorMessage = keys["errorMessage"];
            }

            if (keys["transactionDate"] != null)
            {
                paymentResponse.TransactionDate = keys["transactionDate"];
            }

            if (keys["hash"] != null)
            {
                paymentResponse.Hash = keys["hash"];
            }

            if (keys["threeDSecureCode"] != null)
            {
                paymentResponse.ThreeDSecureCode = keys["threeDSecureCode"];
            }

            ValidateResponse(paymentResponse);

            return(paymentResponse);
        }