/// <summary> /// ThreeD satış işlemi hazırlama /// </summary> /// <returns></returns> public ActionResult Sale() { var createThreedRequest = new CreateThreedRequest { ApiKey = _apiKey, //Merchant ApiKey TransactionId = "NGTT201705291607455972", //Her satış işlemi için gönderilen farklı Sipariş Numarası TransactionTime = "1443600845", //İşlem zamanı, unix timestamp Amount = 5499, //İşlem Tutarı Description = "E-ticaretÖdemesi", //İşlem Açıklaması Currency = "TRY", //Para birimi Installment = 1, //Taksit sayısı, 1 olarak gönderirseniz tek çekim(peşin) işlem olacaktır Card = new Card //Kart bilgileri { CardHolderName = "Ahmet Mehmet", CardNumber = "4355084355084358", ExpireMonth = "12", ExpireYear = "18", SecurityCode = "000" }, BasketItems = new List <BasketItem> //Sepet bilgisi { new BasketItem { Description = "BoyamaKalemSeti", ProductCode = "7cefdf61-38cd-4b35-b5f0-4c98c5805d41", Amount = 8750, VatRatio = 18, Count = 1, Url = "http://www.ahmetmarket.com.tr/boyama-kalem-seti" }, new BasketItem { Description = "BoyamaKitabı", ProductCode = "7cefdf61-38cd-4b35-b5f0-4c98c5805d41", Amount = 2550, VatRatio = 18, Count = 3, Url = "http://www.ahmetmarket.com.tr/boyama-kitabi" }, new BasketItem { Description = "KargoBedeli", Amount = 1000, VatRatio = 18, Count = 1 } }, Customer = new Customer //Müşteri bilgileri { Email = "*****@*****.**", IpAddress = "" }, //ShippingAddress = new ShippingAddress //Teslimat Adresi //{ // Name = "Ahmet Mehmet", // Address = "Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 ŞİŞLİ", // Country = "Türkiye", // CountryCode = "TUR", // City = "İstanbul", // CityCode = "34", // ZipCode = "34580" //}, //InvoiceAddress = new InvoiceAddress //Fatura Adresi //{ // Name = "Ahmet Mehmet", // Address = "Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 ŞİŞLİ", // Country = "Türkiye", // CountryCode = "TUR", // City = "İstanbul", // CityCode = "34", // ZipCode = "34580" //}, //Extras = new List<Extra> { new Extra { Key = "INT_SPRS_KODU", Value = "spr_123456789" } }, //Extra alanında gönderdiğiniz değerler, işlem sonunda size tekrar gönderilir. SuccessUrl = _baseUrl + "/ThreedPayment/SuccessfulResult", //Başarılı işlem redirect adresi FailUrl = _baseUrl + "/ThreedPayment/FailedResult", //Başarısız işlem redirect adresi //Priority = 1, //Fraud için gerekli alan //VisitorId = "12312312", //Fraud için gerekli her müşterinize verdiğiniz unique id //UserKey = "adasdas2222", //Fraud için gerekli //DiscountAmount = 4010,//Fraud için gerekli //GiftCheqAmount = 5600,//Fraud için gerekli HashVersion = _hashVersion//1.1 olarak gönderilmeli }; var apiUrl = _hepsipayUrl + "/payment/ThreeDSecureV2"; //ThreeD post adresi //Signature oluşturma, threeD html sayfası oluşturma işlemleri için metodu inceleyiniz. var createThreedResponse = _paymentProcessor.CreateThreed(createThreedRequest, apiUrl, _secretKey); return(Content(createThreedResponse.HtmlForm)); }
public CreateThreedResponse CreateThreed(CreateThreedRequest createThreedRequestRequest, string apiUrl, string secretKey) { //ThreeD işleminden önce Signature oluşturma işlemi burada yapılır createThreedRequestRequest.SetSignature(secretKey); //ThreeD html formu oluşturulur var html = @"<form name=""payform"" action=""" + apiUrl + @""" method=""post""> <input type=""hidden"" name=""Version"" value=""1.0"" /> <input type=""hidden"" name=""Transactionid"" value=""" + createThreedRequestRequest.TransactionId + @""" /> <input type=""hidden"" name=""ApiKey"" value=""" + createThreedRequestRequest.ApiKey + @""" />" + (createThreedRequestRequest.Card == null ? "" : @" <input type=""hidden"" name=""Card.CardNumber"" value=""" + createThreedRequestRequest.Card.CardNumber + @""" /> <input type=""hidden"" name=""Card.ExpireMonth"" value=""" + createThreedRequestRequest.Card.ExpireMonth + @""" /> <input type=""hidden"" name=""Card.ExpireYear"" value=""" + createThreedRequestRequest.Card.ExpireYear + @""" /> <input type=""hidden"" name=""Card.SecurityCode"" value=""" + createThreedRequestRequest.Card.SecurityCode + @""" /> <input type=""hidden"" name=""Card.CardHolderName"" value=""" + createThreedRequestRequest.Card.CardHolderName + @""" /> ") + @"<input type=""hidden"" name=""Amount"" value=""" + createThreedRequestRequest.Amount + @""" /> <input type=""hidden"" name=""PointAmount"" value=""" + createThreedRequestRequest.PointAmount + @""" />" + (createThreedRequestRequest.Customer == null ? "" : @" <input type=""hidden"" name=""Customer.Email"" value=""" + createThreedRequestRequest.Customer.Email + @""" /> <input type=""hidden"" name=""Customer.IpAddress"" value=""" + createThreedRequestRequest.Customer.IpAddress + @""" /> ") + @"<input type=""hidden"" name=""Installment"" value=""" + createThreedRequestRequest.Installment + @""" /> <input type=""hidden"" name=""SuccessUrl"" value=""" + createThreedRequestRequest.SuccessUrl + @""" /> <input type=""hidden"" name=""FailUrl"" value=""" + createThreedRequestRequest.FailUrl + @""" /> <input type=""hidden"" name=""ThreedReturnUrl"" value=""" + createThreedRequestRequest.ThreedReturnUrl + @""" /> <input type=""hidden"" name=""Signature"" value=""" + createThreedRequestRequest.Signature + @""" /> <input type=""hidden"" name=""Currency"" value=""" + createThreedRequestRequest.Currency + @""" /> <input type=""hidden"" name=""TransactionTime"" value=""" + createThreedRequestRequest.TransactionTime + @""" /> <input type=""hidden"" name=""SaveCreditCard"" value=""" + (createThreedRequestRequest.SaveCreditCard ? "1" : "0") + @""" /> <input type=""hidden"" name=""MerchantUserId"" value=""" + createThreedRequestRequest.MerchantUserId + @""" /> <input type=""hidden"" name=""MerchantCardUserId"" value=""" + createThreedRequestRequest.MerchantCardUserId + @""" /> <input type=""hidden"" name=""MerchantCardId"" value=""" + createThreedRequestRequest.MerchantCardId + @"""/> <input type=""hidden"" name=""IsPreAuth"" value=""" + createThreedRequestRequest.IsPreAuth + @""" /> <input type=""hidden"" name=""HashVersion"" value=""" + createThreedRequestRequest.HashVersion + @""" />"; if (createThreedRequestRequest.BasketItems != null) { var counter = 0; foreach (var item in createThreedRequestRequest.BasketItems) { html += @" <input type=""hidden"" name=""BasketItems[" + counter + @"].Amount"" value=""" + item.Amount + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].BasketItemId"" value=""" + item.BasketItemId + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].Description"" value=""" + item.Description + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].ProductCode"" value=""" + item.ProductCode + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].SubMerchantId"" value=""" + item.SubMerchantId + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].Url"" value=""" + item.Url + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].VatRatio"" value=""" + item.VatRatio + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].Count"" value=""" + item.Count + @""" /> <input type=""hidden"" name=""BasketItems[" + counter + @"].BasketItemType"" value=""" + item.BasketItemType + @""" />"; counter++; } } //document.payform.submit() ile oluşturulan formun, threeD adresine post edilmesi sağlanır. html += @"</form> <script type=""text/javascript""> document.payform.submit(); </script>"; var response = new CreateThreedResponse { HtmlForm = html }; return(response); }