Bu metot dinero ödeme sisteminde bir ödeme linki oluşturur. Oluşturulan ödeme link adresine müşterinizi yönlendirerek ödeme alabilirsiniz. Bu servis iki adımdan oluşmaktadır.
İstek Url | https://www.dinero.com.tr/api/v1/create-3DPay | |||
İstek Tipi | POST form-data | |||
İstek Yanıtı | application/json | |||
userName | string | 200 | Evet | Api Kullanıcı Adı |
password | string | 200 | Evet | Api password |
shopCode | string | 5 | Evet | İşyeri Kodu |
productName | string | 200 | Evet | Uyarı 1 Sepetli sipariş ise, Sepet Adı, Fatura Adı, Tek Ürün ise tam ürün adı. |
productData | array | - | Evet | Uyarı 1 Sepet içeriğindeki ürünleri dizi yada nesne olarak gönderiniz. |
productType | string | - | Evet DIJITAL_URUNFIZIKSEL_URUN |
Ürünlerinizi kargo ile teslim edecekseniz FIZIKSEL_URUN dijital teslimat olan bir ürün satıyorsanız DIJITAL_URUN olarak gönderiniz. |
productsTotalPrice | decimal | - | Evet | Siparişe ait sepetteki ürünlerin toplam tutarı. |
orderPrice | decimal | - | Evet | Api üzerinden geçecek nihai tutar. Taksit oranları bu tutar üzerine eklenerek hesaplanır. |
currency | string | 3 | Evet TRYUSDEUR |
Para birimi. Varsayılan TRY |
orderID | string | 50 | Evet | İlgili siparişinizin sizin sisteminiz tarafındaki sipariş ID yada Sipariş Kodu. Ödenmemiş bir sipariş yada benzersiz olmalıdır. |
locale | string | 2 | Evet trendefrar |
Varsayılan tr |
conversationId | string | 200 | Opsiyonel | İstekte gönderilirse response olarak size geri döndürülür. Request/response eşlemesi yapmak için kullanılır. |
buyerName | string | 100 | Evet | Uyarı 2Sipariş Sahibi Adı |
buyerSurName | string | 100 | Evet | Uyarı 2Sipariş Sahibi Soyadı |
buyerGsmNo | string | 20 | Evet | Uyarı 2Sipariş Sahibi Telefon Numarası |
buyerEmail | 100 | Evet | Uyarı 2Sipariş Sahibi E-Posta adresi | |
buyerIp | ipv4/ipv6 | - | Evet | Uyarı 2Sipariş Sahibi IP Adresi |
buyerAdress | string | 200 | Evet | Sipariş Sahibi Adresi |
buyerCountry | string | 50 | Evet | Sipariş Sahibi Ülke |
buyerCity | string | 50 | Evet | Sipariş Sahibi Şehir |
buyerDistrict | string | 50 | Evet | Sipariş Sahibi İlçe |
hash | string | - | Evet | orderId . currency . orderPrice . productsTotalPrice.productType . callbackOkUrl . callbackFailUrl değişkenlerinden birleştirilerek oluşturulan metnin işyeri hash kodunuzla şifrelenmiş halidir. Örnek Kod İnceleyiniz. |
callbackOkUrl | string|url | 100 | Evet | Müşterinin başarılı işlemde yönlendirileceği sayfa |
callbackFailUrl | string|url | 100 | Evet | Müşterinin başarısız işlemde yönlendirileceği sayfa |
Kart Bilgileri | ||||
card_no | numeric | 16 | Evet | Kart Numarası |
card_expry_month | string | 2 | Evet | Kart son kullanım tarihi ay 2 hane |
card_expry_year | string | 2 | Evet | Kart son kullanım tarihi yıl 2 hane |
card_cvv | string | 3 | Evet | Kart cvv numarası |
card_holder | string | 80 | Evet | Kart üzerindeki ad soyad |
installment_number | int | 1 - 12 aralığı | Evet | Taksit Sayısı |
$orderData = [
'userName' => $this->apiUser,
'password' => $this->apiKey,
'shopCode' => $this->shopCode,
'productName' => $data['productName'] ?? '',
'productData' => $data['productData'] ?? '',
'productType' => $data['productType'] ?? '',
'productsTotalPrice' => $data['productsTotalPrice'] ?? '',
'orderPrice' => $data['orderPrice'] ?? '',
'currency' => $data['currency'] ?? '',
'orderId' => $data['orderId'] ?? '',
'locale' => $data['locale'] ?? '',
'conversationId' => $data['conversationId'] ?? '',
'buyerName' => $data['buyerName'] ?? '',
'buyerSurName' => $data['buyerSurName'] ?? '',
'buyerGsmNo' => $data['buyerGsmNo'] ?? '',
'buyerIp' => $data['buyerIp'] ?? '',
'buyerMail' => $data['buyerMail'] ?? '',
'buyerAdress' => $data['buyerAdress'] ?? '',
'buyerCountry' => $data['buyerCountry'] ?? '',
'buyerCity' => $data['buyerCity'] ?? '',
'buyerDistrict' => $data['buyerDistrict'] ?? '',
'callbackOkUrl' => $data['callbackOkUrl'] ?? '',
'callbackFailUrl' => $data['callbackFailUrl'] ?? '',
'module' => $data['module'] ?? '',
'card_no' => $data['card_no'] ?? '',
'card_expry_month' => $data['card_expry_month'] ?? '',
'card_expry_year' => $data['card_expry_year'] ?? '',
'card_cvv' => $data['card_cvv'] ?? '',
'card_holder' => $data['card_holder'] ?? '',
'installment_number' => $data['installment_number'] ?? '',
];
$orderData['hash'] = $this->generateHash($orderData['orderId'] . $orderData['currency'] . $orderData['orderPrice'] . $orderData['productsTotalPrice'] . $orderData['productType'] . $orderData['callbackOkUrl'] . $orderData['callbackFailUrl']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->apiBaseUrl . '/create-3DPay');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($orderData));
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['SERVER_NAME']);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$resultBody = curl_exec($ch);
$httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($responseArr['status'] == 'success')
{
return [
'status' => 'success',
'errorMessage' => '',
'data' => [
'ucdTipi' => $responseArr['data']['ucdTipi'],
'ucdResult' => $responseArr['data']['ucdResult'],
'dineroOrderId' => $responseArr['data']['dineroOrderId'],
],
];
}
else
{
return [
'status' => 'error',
'message' => $responseArr['errorMessage'],
'redirectUrl' => '',
];
}
Bir ödeme için ödeme yapan 3d ekranı sonrası callbackOkUrl yada callbackFailUrl adresinize yönlendirilir. Bu yönlendirme işleminden hemen öncede callbackConfirm adresinize bir webhook gönderilir.
Bu yönlendirme sonrasında işlem sorguya çıkabilir yada webhook takibine göre işlem yürütebilirsiniz
İstek Url | "Webhook karşılama Url adresiniz" | |||
İstek Tipi | POST form-data | |||
İstek Yanıtı | application/html || application/text | |||
Parametreler | Örnek | Alabileceği Değerler | ||
status | success | success | ||
paymentStatus | paymentOk paymentVerification paymentWait paymentNotPaid | |||
hash | aHR0cHM6Ly93d3cuZGluZXJvLmNvbS50ci9kZXYvbGlua1BheW1lbnQ= | orderId . paymentCurrency . paymentAmount . productsTotalPrice . productType . shopCode . {hashAnahtarınız} verileri uç uca eklenerek oluşturulan imzadır |
||
paymentCurrency | TRY | Para Birimi | ||
paymentAmount | 149.90 | Ödeme Tutarı | ||
paymentType | KART | KART BANKA_HAVALE YURT_DISI | ||
paymentTime | 2025-06-01 21:54:47 | Ödeme Tarihi Y-m-d H:i:s | ||
conversationId | 123456 | Link oluşturken bildirdiğiniz conversationId | ||
orderId | 123456 | Link oluşturken bildirdiğiniz orderId | ||
shopCode | 999999 | İşyeri Kodunuz | ||
orderPrice | 149.90 | Sipariş Tutarı | ||
productsTotalPrice | 149.90 | Sepet ürünler toplam tutarı | ||
dineroOrderNumber | 5434313 | Dinero Ödeme Numarası | ||
dineroOrderId | 65165156 | Dinero Ödeme Idsi | ||
productType | FIZIKSEL_URUN | Ürün Tipi | ||
callbackOkUrl | https://www.websiteniz.com/paymentOk | Link oluşturken bildirdiğiniz başarılı url adresi | ||
callbackFailUrl | https://www.websiteniz.com/paymentFail | Link oluşturken bildirdiğiniz başarısız url adresi | ||
customerPaymentAmount | 149.90 | Müşterinin kartından geçen nihai tutar | ||
cardMask | 520019*******4141 | Maskeli Kart Numarası | ||
cardType | BONUS | Kart Markası | ||
cardUserIp | 144.122.199.90 | Kart 3d ip adresi | ||
cardHolder | AHMET DERE | Kart sahibi Ad Soyad | ||
bankMessage | - | Banka Mesajı |