# Yeni İşlem Oluşturma

FORM POST /ServletV2/Transaction

Host: {SERVIS\_URL}

Content-Type: text/html

Yeni bir sipariş talebi başlatmak için kullanılan methoddur. Gönderilen veriler doğrulanması durumunda istek **HASO** URL’sine yönlendirilecektir. **customerId** parametresi sağlanırsa müşteri tanınacak, doğrulanmış ve limiti bulunan bir müşteriyse **HASO** arayüzlerinden **Taksit Planı** adımı ile devam edecektir. Aşağıda **Giriş** ve **Çıkış** parametreleri detaylı olarak bulunabilir.

#### **Giriş Parametreleri**

<table data-full-width="true"><thead><tr><th width="159">Ad</th><th width="80">Tipi</th><th width="62">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>token</td><td>String</td><td>Z</td><td>/Index/GetToken methodundan elde edilen token bilgisi</td></tr><tr><td>orderAmount</td><td>String</td><td></td><td>Gönderilecek değer 100 ile çarpılarak gönderilmelidir ondalık basamak nokta yada virgül içermemelidir. Örn: 500 TL lik bir alışveriş için 500*100 = 50000 değeri gönderilmelidir.</td></tr><tr><td>merchantId</td><td>String</td><td></td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>okUrl</td><td>String</td><td>Z</td><td>Sipariş başarılı olarak tamamlanırsa HASO Sistemi tarafından <strong>FORM POST</strong> edilecek URL adresiniz.</td></tr><tr><td>failUrl</td><td>String</td><td>Z</td><td>Sipariş başarısız olarak tamamlanırsa ya da iptal edilirse <strong>HASO</strong> Sistemi tarafından FORM POST edilecek URL adresiniz.</td></tr><tr><td>callbackUrl</td><td>String</td><td>Z</td><td>Siparişin başarılı olması ve müşterinin <strong>HASO</strong> UI ekranlarında tamamlanmış olduğu halde işlemi yarıda bırakması tarayıcısını kapatması gibi durumlarda E-Ticaret sistemine failURL veya okURL dönüşü sağlanamazsa sipariş bildiriminin kesilmemesi için <strong>HASO</strong> tarafından E-Ticaret sistemine bildirimin sağlanmasını garanti edecek URL.</td></tr><tr><td>IpAddress</td><td>String</td><td>O</td><td>İsteği yapan müşterinin gerçek IP Adresi loglama ve herhangi bir sorun durumunda kullanılacak veridir.</td></tr><tr><td>merchantOid</td><td>String</td><td>Z</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır. Siparişe ait tanımlayıcıdır. Örn: 1905231436-1</td></tr><tr><td>customerId</td><td>String</td><td>O</td><td>Her başarılı işlemin sonunda <strong>okUrl</strong> adresinize <strong>POST</strong> edilen verilerin içinde tarafınıza dönülecek doğrulanmış müşterilerin tanımlayıcı numarasıdır. Bir sonraki İşlem oluşturma isteklerinde gönderilirse ilgili müşteri <strong>HASO</strong> tarafından tanınacaktır.</td></tr><tr><td>mobileNumber</td><td>String</td><td>Z</td><td>GSM numarası ilk basamağında 0 içermeyen 10 haneli olarak aşağıdaki formatta sağlanmalıdır. Format : ########## örn : 5536616020</td></tr><tr><td>birthDate</td><td>String</td><td></td><td>Doğum Tarihi Yıl-Ay-Gün aşağıdaki formatta sağlanmalıdır. Format : yyyy-MM-dd örn : 19830817</td></tr><tr><td>email</td><td>String</td><td>Z</td><td>E-Posta adresi</td></tr><tr><td>name</td><td>String</td><td>Z</td><td>Ad bilgisi</td></tr><tr><td>surname</td><td>String</td><td>Z</td><td>Soyad bilgisi</td></tr><tr><td>tckn</td><td>String</td><td>Z</td><td>TCKN bilgisi (Eğer customerId ile geliniyorsa zorunlu değildir)</td></tr><tr><td>UserAddress</td><td>String</td><td>O</td><td>Sipariş teslimat adresidir. Opsiyonel olmasına rağmen sipariş sonrası müşteri takibini kolaylaştırdığı için gönderilmesi rica olunur. Gönderilecek modelde şu parametre isimlerinde gönderilmelidir.<br>{ "<strong>UserNameSurname</strong>": "Nilüfer Bursalı", "<strong>Detail</strong>": "Abc Mahallesi Abc Caddesi Abc Sitesi B Blok D:1", "<strong>PostalCode</strong>": "16240", "<strong>TownName</strong>": "NİLÜFER", "<strong>CityName</strong>": "BURSA", "<strong>CountryName</strong>": "TÜRKİYE", "<strong>Phone</strong>": "+90 516 111 22 33" }</td></tr><tr><td>OrderItems</td><td>String</td><td>Z</td><td><p>Sipariş içeriğindeki ürün bilgilerinin gönderileceği modeli <strong>json array</strong> stringi olarak gönderilmelidir. Örnek modelde göründüğü gibi şu parametre isimlerinde gönderilmelidir.</p><p>[ { "<strong>Id</strong>": "1.Ürün Sku kodu unique kod", "<strong>Name</strong>": "1. Ürün adı", "<strong>Category</strong>": "1. Ürün kategori adı veya kodu", "<strong>Brand</strong>": "1.Ürün markası", "<strong>Variant</strong>": "1. ürün özellik örneğin renk adı", "<strong>Variant2</strong>": "1. ürün diğer özellik örneğin beden, boy vs", "<strong>Url</strong>": "Sitenizdeki 1. ürün detay adresi", "<strong>Image</strong>": "1. ürünü gösteren bir foto adresi", "<strong>Quantity</strong>": "1. ürün adedi", "<strong>Price</strong>": "1. ürün tutarı. Ondalık olmadan 100 ile çarparak int gönderilmelidir" }, { "<strong>Id</strong>": "2.Ürün Sku kodu unique kod", "<strong>Name</strong>": "2. Ürün adı", "<strong>Category</strong>": "2. Ürün kategori adı veya kodu", "<strong>Brand</strong>": "2.Ürün markası", "<strong>Variant</strong>": "2. ürün özellik örneğin renk adı", "<strong>Variant2</strong>": "2. ürün diğer özellik örneğin beden, boy vs", "<strong>Url</strong>": "Sitenizdeki 2. ürün detay adresi", "<strong>Image</strong>": "2. ürünü gösteren bir foto adresi", "<strong>Quantity</strong>": "2. ürün adedi", "<strong>Price</strong>": "2. ürün tutarı. Ondalık olmadan 100 ile çarparak int gönderilmelidir" } ]</p></td></tr></tbody></table>

####

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="439">Ad</th><th width="121">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td><strong>OkUrl</strong> callbackUrl (<strong>callbackUrl</strong> tamamlanan sipariş E-Ticaret sisteminden onaylanmaz yada <strong>okURL</strong> erişimi sağlanamazsa aynı verilerle Http 200 durum kodu alınana kadar E-Ticaret tarafının <strong>HASO</strong> sistemine çağrı yaparak siparişi onaylayana kadar istek yapılır.)</td><td>Form Post</td><td>Müşterinin siparişi <strong>HASO</strong> arayüzlerinde başarılı olarak tamamlanırsa. İstekte belirttiğiniz <strong>okURL</strong> ya da <strong>callbackUrl</strong> URL adresine aşağıdaki parametrelerle <strong>FORM POST</strong> yöntemi ile geri bildirim sağlanacaktır. Geri bildirim içerisinde bulunan veriler şöyledir;</td></tr><tr><td>Success</td><td>Bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td></td><td></td></tr></tbody></table>

Data Parametresinde taksit değerleri vardır. Data parametresi içeriği ise şöyledir;

<table data-full-width="true"><thead><tr><th width="270">Ad</th><th width="79">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>NameSurname</td><td>String</td><td>Müşteri Ad Soyad</td></tr><tr><td>CustomerId</td><td>String</td><td><strong>HASO</strong> sistemindeki müşteri numarası bir sonraki Transaction işlemlerinde customerId ile bu değer gönderilirse <strong>HASO</strong> sistemi kullanıcıyı tanıyacak ve limiti varsa Taksit Planı ekranından devam edilecektir.</td></tr><tr><td>TransactionStatus</td><td>String</td><td>İşlemin durum kodu durum kodu <strong>6</strong> olarak tarafınıza dönülen siparişler E-Ticaret tarafından /Index/UpdateTransaction isteği yapılarak aktif edilmesi gereken siparişlerdir.</td></tr><tr><td>Data[“TransactionPayments”]</td><td>String</td><td>İşleme ait ödeme planını içerek json modeldir.</td></tr></tbody></table>

Transaction Payments Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="363">Ad</th><th width="111">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>TransactionCode</td><td>String</td><td><strong>HASO</strong> sistemindeki işlem numarası. Bu numarayı kendi sipariş numaranız ile birlikte kendi veritabanınızda saklamanızı tavsiye ederiz.</td></tr><tr><td>MerchantOid</td><td>String</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>DownPayment</td><td>Decimal</td><td>Bu işlem için müşteriden alınması gereken peşinat tutarını gösterir</td></tr><tr><td>TransactionPayments</td><td>List</td><td>Ödeme planında kaç taksit varsa o kadar item içeren listedir. Listedeki elemanların parametreleri şunlardır.</td></tr><tr><td>TransactionPayments.InstallmentNo</td><td>Integer</td><td>Taksit numarasıdır.</td></tr><tr><td>TransactionPayments.PaymentCode</td><td>String</td><td>Her ödeme kaydı için verilen unique bir değer.</td></tr><tr><td>TransactionPayments.InstallmentPayment</td><td>Decimal</td><td>Ödenmesi gereken taksit tutarıdır.</td></tr><tr><td>TransactionPayments.Fee</td><td>Decimal</td><td>Taksit kaydına düşen fee değeridir.</td></tr><tr><td>TransactionPayments.TermDate</td><td>DateTime</td><td>Taksitin vade tarihidir.</td></tr><tr><td></td><td></td><td></td></tr><tr><td><strong>FailUrl</strong></td><td>Form Post</td><td>Müşterinin siparişi <strong>HASO</strong> iptal edilirse, istekte belirttiğiniz <strong>failURL</strong> URL adresine aşağıdaki parametrelerle <strong>FORM POST</strong> yöntemi ile geri bildirim sağlanacaktır. Geri bildirim içerisinde bulunan veriler şöyledir;</td></tr><tr><td>Success</td><td></td><td></td></tr><tr><td>Errors</td><td>List</td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>MercantOid</td><td>String</td><td>İşlem başlangıcında gönderilen Sipariş Numarası</td></tr></tbody></table>
