# 5.3. Yeni İşlem Oluşturma

Servis Url: <mark style="color:red;">{SERVIS\_URL}/ServletV2/TransactionMobile</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="213">Parametre adı </th><th width="148">Parametre  Tipi</th><th width="63">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>Token</td><td>String</td><td></td><td></td></tr><tr><td>merchantId</td><td>String</td><td>Z</td><td>Haso tarafından size verilen sabit parametredir.</td></tr><tr><td>okUrl</td><td>String</td><td></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></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></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>İstek yapan istemcinin ip adresi</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>qrhash</td><td>String</td><td>O</td><td>Mobil uygulamadan oluşturulan QR kod içerisinde bulunan şifreli müşteri bilgileri. QR okutularak müşteri bilgileri elde etme, elde edilen bu değer gönderilir.  Oluşturulan her QR kod 10 dakika geçerlidir. CustomerID verisi bu değer üzerinden okunacaktır.</td></tr><tr><td>branchId</td><td>String(20)</td><td>O</td><td>Siparişin verildiği şubenin (Mağazanın) Id numarası. Sipariş raporlarında hangi mağazadan  verildiğini belirtir.</td></tr><tr><td>customerId</td><td>String(10)</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti. <br><mark style="color:red;">Not: qrhash parametresi gönderilirse zorunlu değildir. Ancak yine de gönderilebilir fakat qrhash içerisindeki customerID verisi dikkate alınacaktır.</mark></td></tr><tr><td>orderAmount</td><td>String</td><td>Z</td><td>Sipariş tutarı. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır.</td></tr><tr><td>OrderItems</td><td>Json</td><td>O</td><td><p>Sipariş içeriğindeki ürün bilgilerinin key-value şeklinde json array stringi olarak hazırlanmasıdır. Json demetinde olması beklenen key değerleri şunlardır. </p><p>“id”: sisteminizde her bir ürün için verilmiş unique kod. </p><p>“name”: Ürün adı</p><p>“category”: Ürün kategorisi</p><p>“brand”: ürünün marka bilgisi</p><p>“variant”: Renk gibi ürüne ait bir variant değeri</p><p>“variant2”: Beden/size gibi ürüne ait diğer varyant</p><p>“url”: Sitenizdeki ilgili ürünün detay urlsi.</p><p>“image”: Sitenizdeki ilgili ürünün görsel urlsi.</p><p>“quantity”: İlgili üründen kaç adet alındığı bilgisidir.</p><p>“price”: Ürünün satış fiyatı</p></td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="216">Parametre adı </th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>işlemin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse ödeme planını kendi veritabanınıza kaydedebilir ve siparişinizi aktif edebilirsiniz.</td></tr><tr><td>Errors</td><td>List&#x3C;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>expiredate</td><td>Datetime</td><td>Başlatılan işlemin sona erme süresi</td></tr><tr><td>customerID</td><td>String</td><td>İşlemi oluşturulan Müşteri numarası</td></tr><tr><td>checkoutkey</td><td>String</td><td>Her işlem için belirlenen benzersiz guid değeri (Kendi tarafınızda saklamanızı öneririz)</td></tr></tbody></table>

## OkUrl, FailUrl, CallbackUrl dönüş parametreleri

<table data-full-width="true"><thead><tr><th width="466">Parametre adı </th><th width="120">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>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><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>Taksit numarasıdır.</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><strong>FailUr</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>
