Bilgilendirme

Kart Saklama Nedir?

Hepsipay Tek Tıkla Ödeme servisi ile müşterileriniz kart bilgilerini güvenle Hepsipay’e kaydedebilir, sonraki alışverişlerinde kart bilgilerini tekrar girmelerine gerek kalmadan tek tıkla kolayca ödeme yapabilirler.

Kart Saklama Servisleri

Hepsipay Kart Saklama çözümü üye işyeri için dört ayrı servis sunmaktadır. Bunlar aşağıda listelenmiştir.

  • Kart Saklama
  • Kart Silme
  • Kart Güncelleme
  • Kart Sorgulama

Access Token Nasıl Alabilirim?

Prod Url  : https://api.hepsipay.com/oauth/token
Test Url   : https://apientgr.hepsipay.com/oauth/token
HTTP Method  : POST
Header value  : Content-Type: application/x-www-form-urlencoded; Authorization = Basic Base64(ClientId+:+ClientSecret)
Body:  : grant_type = password

Token için verilen Url adreslerine POST metodu kullanarak bir istek yapmanız gerekmektedir. Header bilgisi olarak Content-Type: application/x-www-form-urlencoded; ve Authorization = Basic Base64(ClientId+:+ClientSecret) göndermelisiniz.

ClientId ve ClientSecret Base 64 ile şifrelenmesi

Kullanıcı adı ve parolasıyla doğrulama yapılır ve access token alınır. Kullanıcı adı “ClientId” ve kullanıcı parolası “ClientSecret” olarak tanımlanmıştır ve zorunlu parametrelerdir. ClientId ve ClientSecret bilgisi string birleştirilir. Bu birleştirilen bilgileri Base64 ile encode edilerek HTTP Basic Authorization olarak headerda yollanır. ClientId ve Clientsecret encode edilirken aralarına ":" karakteri koyulmalıdır.

ClientId parametresi yerine ApiKey ve ClientSecret yerine SecretKey bilgilerini kullanmalısınız.

Hesapladığınız header bilgileri ve x-www-form-urlencoded şeklinde grant_type=password gönderimi ile istek yapabilirsiniz.

NOT!

Aşağıdaki adresten Postman isteğini import edebilirsiniz:

https://www.getpostman.com/collections/ac81fdbb30f335d7d579

Postman uygulamasını Chrome üzerinden eklenti olarak yüklemeyen üye işyerlerimiz yukarıdaki linke ulaşamamaktadır.

Bu üye işyerlerimiz buraya tıklayarak txt dosyası halinde indirip Postman'e import etmelidir.

Postman ile yapılmış bir örnek AccessToken isteği:

Header parametreleri:

Body:

Access Token Cevabı:


{ 
"access_token": "XXXXYYYZZZ", 
"token_type": "bearer", 
"expires_in": 43199
}

Örnek Postman cevabı:

Kart Saklama

Üye iş yerinin kart bilgisini saklamasını sağlar. Kart kaydetme web servisi authentication ve authorization (access token kullanımı) gerektirir. Alınan access token Headers’ ta Authorization altında istekle beraber “Bearer AccessToken” formatında gönderilir.

MerchantUserId + MerchantCardUserId oluşturduğu alan tekil olmalıdır. MerchantUserId ve MerchantCardUserId bilgisi beraber kullanılmalıdır.

Prod Url  :  https://api.hepsipay.com/cards/
Test Url    :  https://apientgr.hepsipay.com/cards/
HTTP Method  :  POST
Headers  :  Content-Type = application/json; Authorization = Bearer AccessToken

NOT!

Aşağıdaki adresten Postman isteğini import edebilirsiniz:

https://www.getpostman.com/collections/45025fb76ac4aded1e24

Postman uygulamasını Chrome üzerinden eklenti olarak yüklemeyen üye işyerlerimiz yukarıdaki linke ulaşamamaktadır.

Postman'den import ettiğiniz dosyalar için tekrar token almanız gerekecektir.

Bu üye işyerlerimiz buraya tıklayarak txt dosyası halinde indirip Postman'e import etmelidir.

Aşağıdaki örnek kodları kütüphanemizden indirerek kullanabilirsiniz. Örnek kodlar için buraya tıklayınız.

Web Servis İsteği


{
"Fullname": "Erhan Tarık",
"Cardnumber": "4508034508034509",
"Expiremonth": "12",
"Expireyear": "16",
"Apikey":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM",
"MerchantUserId":"User_1",
"MerchantCardUserId":"Bankxxx_yyy_kartı",
"Email":"test@mail.com",
"ReferenceId1":"12345"
}

			package com.hepsipay.sample;

import com.hepsipay.client.model.request.card.CardRegisterRequest;
import com.hepsipay.client.model.response.OAuthResponse;
import com.hepsipay.client.model.response.card.CardRegisterResponse;
import com.hepsipay.client.service.OAuthService;
import com.hepsipay.client.service.card.CardService;

/**
 * 
 * @author Ahmet Faruk Bişkinler,
 * @Support PixelTürk Web Studio, "destek@pixelturk.net"
 *
 */
public class SampleCardRegister extends Sample {

	public static void main(String[] args) {
		CardRegisterRequest registerCardRequest = new CardRegisterRequest();
		registerCardRequest.setFullName("Erhan Tarık"); // Kart İsim Soyisim (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		registerCardRequest.setCardNumber("4508034508034509"); // Kart Numarası (15 veya 16 haneli nümerik değerdir.)
		registerCardRequest.setExpireMonth("10"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
		registerCardRequest.setExpireYear("16"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
		registerCardRequest.setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
		registerCardRequest.setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)
		
		CardService cardService = new CardService(hepsiPaySettings);
		OAuthService oauthService = new OAuthService(hepsiPaySettings);
		OAuthResponse login = oauthService.login();
		CardRegisterResponse registerCardResponse = cardService.registerCard(registerCardRequest, login);
	}
	
	
}


<?php 

require_once('config.php');

/**
 * Register Card Request
 * Kart Kayıt Etme İsteği Oluştur
 */
$request = new \Hepsipay\Request\RegisterCardRequest();

/**
 * Set Options
 * Ayarları Set Et
 */
$request->setOptions($options);

$request->setFullName("Erhan Tarık"); // Kart İsim Soyisim (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$request->setCardNumber("5571135571135575"); // Kart Numarası (15 veya 16 haneli nümerik değerdir.)
$request->setExpireMonth("12"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
$request->setExpireYear("18"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
$request->setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
$request->setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)

/**
 * Make Request
 * İsteği Oluştur
 */
$response = \Hepsipay\Model\RegisterCard::create($request);

/**
 * Print Response ve Request Details
 * Yanıtı ve İstek Detaylarını Yazdır
 */
echo "<pre>";
echo "\nRESPONSE\n\n";
print_r($response); // Response
echo "\nREQUEST\n\n";
print_r($request->toJsonString()); // Request
echo "</pre>"; 
 


namespace Dpay.Client.Models.Request
{
    public class SaveCardRequest : BaseRequest
    {
        public string CardNumber { get; set; }
        public string ExpireMonth { get; set; }
        public string ExpireYear { get; set; }
        public string CardHolderFullName { get; set; }
        public string MerchantUserId { get; set; }
        public string MerchantCardUserId { get; set; }
        public string ApiKeyName { get; set; }
        public string Email { get; set; }
        public string ReferenceId1 { get; set; }

    }
}

 

Web Servis Cevabı


{
"Id": "ace0adc7-cd8d-4264-85ad-a7ac00990208",
"MaskedCardNumber": "450803*****4509",
"FullName": "Erhan Tarık",
"MerchantUserId": "User_1",
"MerchantCardUserId": "Bankxxx_yyy_kartı",
"IsSuccess": true,
"Email": "test@mail.com",
"ReferenceId1": "12345",
"Success": true,
"MessageCode": "0000",
"Message": "Başarılı",
"UserMessage": "İşleminiz başarıyla gerçekleşmiştir."
}

Kart Silme

Üye iş yerinin kayıtlı kartını silmesini sağlar. Kart silme web servisi authentication ve authorization (access token kullanımı) gerektirir. Detaylı bilgi için access token alımı bölümünü inceleyebilirsiniz. Alınan access token Headers’ ta Authorization altında istekle beraber “Bearer AccessToken” formatında gönderilir.

Bunun için ya tekil olan kart tanımlayıcı bilgisini (Id) ya da MerchantUserId ve MerchantCardUserId alanları doldurması gerekmektedir.

 

Prod Url  :  https://api.hepsipay.com/cards/
Test Url   :  https://apientgr.hepsipay.com/cards/
HTTP Method  :  DELETE
Headers  :  Content-Type = application/json; Authorization = Bearer AccessToken

NOT!

Aşağıdaki adresten Postman isteğini import edebilirsiniz:

https://www.getpostman.com/collections/5c417196e4336651e60a

Postman uygulamasını Chrome üzerinden eklenti olarak yüklemeyen üye işyerlerimiz yukarıdaki linke ulaşamamaktadır.

Bu üye işyerlerimiz buraya tıklayarak txt dosyası halinde indirip Postman'e import etmelidir.

Aşağıdaki örnek kodları kütüphanemizden indirerek kullanabilirsiniz. Örnek kodlar için buraya tıklayınız.

Web Servis İsteği


{
"Apikey":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM",
"MerchantUserId":"User_1",
"MerchantUserCardId":"Bankxxx_yyy_kartı"
}


{
"Apikey":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM",
"MerchantCardId" : "4e04b4a7-a62c-4845-b83c-a705010a7899"
}


		package com.hepsipay.sample;

import com.hepsipay.client.model.request.card.CardDeleteRequest;
import com.hepsipay.client.model.response.OAuthResponse;
import com.hepsipay.client.model.response.card.CardDeleteResponse;
import com.hepsipay.client.service.OAuthService;
import com.hepsipay.client.service.card.CardService;

/**
 * 
 * @author Ahmet Faruk Bişkinler,
 * @Support PixelTürk Web Studio, "destek@pixelturk.net"
 *
 */
public class SampleCardDelete extends Sample {

	public static void main(String[] args) {
		CardDeleteRequest request = new CardDeleteRequest();
		request.setId("8c3371d2-f0d0-4b9a-ae5a-a71301822da5");
		request.setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
		request.setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)

		CardService cardService = new CardService(hepsiPaySettings);
		OAuthService oauthService = new OAuthService(hepsiPaySettings);
		OAuthResponse login = oauthService.login();
		CardDeleteResponse deleteResponse = cardService.deleteCard(request, login);
	}
	
}


<?php 

require_once('config.php');

/**
 * Delete Card Request
 * Kart Silme İsteği Oluştur
 */
$request = new \Hepsipay\Request\DeleteCardRequest();

/**
 * Set Options
 * Ayarları Set Et
 */
$request->setOptions($options);

$request->setId("be600889-dbb5-4a99-a783-a6dd012a8a47");
$request->setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
$request->setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)

/**
 * Make Request
 * İsteği Oluştur
 */
$response = \Hepsipay\Model\DeleteCard::create($request);

/**
 * Print Response ve Request Details
 * Yanıtı ve İstek Detaylarını Yazdır
 */
echo "<pre>";
echo "\nRESPONSE\n\n";
print_r($response); // Response
echo "\nREQUEST\n\n";
print_r($request->toJsonString()); // Request
echo "</pre>";

 


using System;

namespace Dpay.Client.Models.Request
{
    public class DeleteCardRequest : BaseRequest
    {
        public Guid Id { get; set; }
        public string MerchantUserId { get; set; }
        public string MerchantCardUserId { get; set; }
    }
}

Web Servis Cevabı


{
"MerchantCardDtos": 
[
{
"Id": "ace0adc7-cd8d-4264-85ad-a7ac00990208",
"MaskedCardNumber": "450803*****4509",
"MerchantUserId": "User_1",
"MerchantCardUserId": "Bankxxx_yyy_kartı",
"FullName": "Erhan Tarık",
"BankName": null,
"MerchantUrl": null,
"ExpireYear": null,
"ExpireMonth": null,
"Email": "test@mail.com",
"ReferenceId1": "12345"
],
"Success": true,
"MessageCode": "0000",
"Message": "Başarılı",
"UserMessage": "İşleminiz başarıyla gerçekleşmiştir."
}

Kart Güncelleme

Üye iş yeri güncellenen kartın son kullanma tarih bilgilerini sistemde değiştirebilirsiniz.  Kart kaydetme web servisi authentication ve authorization (access token kullanımı) gerektirir. Detaylı bilgi için access token alımı bölümünü inceleyebilirsiniz.. Alınan access token Headers’ ta Authorization altında istekle beraber “Bearer AccessToken” formatında gönderilir.

Bunun için ya tekil olan kart tanımlayıcı bilgisini (Id) ya da MerchantUserId ve MerchantCardUserId alanları doldurması gerekmektedir.

 

Prod Url     :  https://api.hepsipay.com/cards/
Test Url   :  https://apientgr.hepsipay.com/cards/
HTTP Method  :  PUT
Headers  :  Content-Type = application/json; Authorization = Bearer AccessToken

NOT!

Aşağıdaki adresten Postman isteğini import edebilirsiniz:

https://www.getpostman.com/collections/a228f06690f2817c9d91

Postman uygulamasını Chrome üzerinden eklenti olarak yüklemeyen üye işyerlerimiz yukarıdaki linke ulaşamamaktadır.

Bu üye işyerlerimiz buraya tıklayarak txt dosyası halinde indirip Postman'e import etmelidir.

Aşağıdaki örnek kodları kütüphanemizden indirerek kullanabilirsiniz. Örnek kodlar için buraya tıklayınız.

Web Servis İsteği


{
"apikey": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM", 
"ExpireMonth": "12",
"ExpireYear":"18",
"MerchantUserId" : "User_1",
"MerchantCardUserId" : "Bankxxx_yyy_kartı"
}


{
"apikey": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM", 
"ID": "ace0adc7-cd8d-4264-85ad-a7ac00990208",
"ExpireMonth": "12",
"ExpireYear":"18",
}


package com.hepsipay.sample;

import com.hepsipay.client.model.request.card.CardUpdateRequest;
import com.hepsipay.client.model.response.OAuthResponse;
import com.hepsipay.client.model.response.card.CardUpdateResponse;
import com.hepsipay.client.service.OAuthService;
import com.hepsipay.client.service.card.CardService;

/**
 * 
 * @author Ahmet Faruk Bişkinler,
 * @Support PixelTürk Web Studio, "destek@pixelturk.net"
 *
 */
public class SampleCardUpdate extends Sample {
	
	public static void main(String[] args) {
		CardUpdateRequest request = new CardUpdateRequest();
		request.setId("c34ff7a8-b0a7-49ca-a7aa-a7150184b71d");
		request.setExpireMonth("12");
		request.setExpireYear("18");
		request.setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
		request.setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)
		
		CardService cardService = new CardService(hepsiPaySettings);
		OAuthService oauthService = new OAuthService(hepsiPaySettings);
		OAuthResponse login = oauthService.login();
		CardUpdateResponse updateResponse = cardService.updateCard(request, login);
	}
	
}

 <?php 

require_once('config.php');

/**
 * Update Card Request
 * Kart Güncelleme İsteği Oluştur
 */
$request = new \Hepsipay\Request\UpdateCardRequest();

/**
 * Set Options
 * Ayarları Set Et
 */
$request->setOptions($options);

$request->setId("84095ee7-232a-4134-8be1-a6dd0135bff8"); // Kartı bilgisi tekil kodu (Guid değeridir.)
$request->setExpireMonth("12"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
$request->setExpireYear("18"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
$request->setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
$request->setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)

/**
 * Make Request
 * İsteği Oluştur
 */
$response = \Hepsipay\Model\UpdateCard::create($request);

/**
 * Print Response ve Request Details
 * Yanıtı ve İstek Detaylarını Yazdır
 */
echo "<pre>";
echo "\nRESPONSE\n\n";
print_r($response); // Response
echo "\nREQUEST\n\n";
print_r($request->toJsonString()); // Request
echo "</pre>";
 
 
 

  
var request = new UpdateCardRequest
{
	ApiKey = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJBcGlLZXkiOiJhNTNkZjYwZjUwNmY0MzBjYTRjNzQzNTRkNDU1Y2RlYyJ9.O-eJWMK1sHt3JZgHFsnJp6yyiqmbzdyuOOe0-AvnHzg",
	Id = Guid.Parse("cf236f4d-4a74-4d7f-b54e-a75c00fbc622"),
	ExpireMonth = "02",
	ExpireYear = "20",
	MerchantCardUserId = "1234421",
	MerchantUserId = "131231"
};

var apiUrl = "https://apientgr.hepsipay.com/cards";

var response = _cardProcessor.UpdateCard(request, apiUrl, "123");

Web Servis Cevabı


{
"Id":"d54f2898-3ac6-402f-8dd1-a708010d19f5",
"MerchantUserId":"15000",
"MerchantCardUserId":"Bankxxx_yyy_kartı",
"MaskedCardNumber":"540063*****7156",
"FullName":"Mevlüt Tüten",
"ExpireMonth":"10",
"ExpireYear":"21",
"Success":true,
"MessageCode":"0000",
"Message":"Başarılı",
"UserMessage":"İşleminiz başarıyla gerçekleşmiştir."
}

Kart Sorgulama

Üye iş yerinin kayıtlı kartlarını görüntülemesini ve sorgulamasını sağlar. Kart kaydetme web servisi authentication ve authorization (access token kullanımı) gerektirir. Detaylı bilgi için access token alımı bölümünü inceleyebilirsiniz. Alınan access token Headers’ta Authorization altında istekle beraber “Bearer AccessToken” formatında gönderilir.

Bunun için ya tekil olan kart tanımlayıcı bilgisini (Id) ya da MerchantUserId ve MerchantCardUserId alanları doldurması gerekmektedir.

 

Prod Url  :  https://api.hepsipay.com/cards/query
Test Url  :  https://apientgr.hepsipay.com/cards/query
HTTP Method  :  POST
Headers        :  Content-Type = application/json; Authorization = Bearer AccessToken

NOT!

Aşağıdaki adresten Postman isteğini import edebilirsiniz:

https://www.getpostman.com/collections/b4fb37eaab1bba2df22b

Postman uygulamasını Chrome üzerinden eklenti olarak yüklemeyen üye işyerlerimiz yukarıdaki linke ulaşamamaktadır.

Bu üye işyerlerimiz buraya tıklayarak txt dosyası halinde indirip Postman'e import etmelidir.

Aşağıdaki örnek kodları kütüphanemizden indirerek kullanabilirsiniz. Örnek kodlar için buraya tıklayınız.

Web Servis İsteği


{
"apikey": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM", 
"MerchantUserId" : "User_1",
"MerchantCardUserId" : "Bankxxx_yyy_kartı"
}

{
"apikey": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM", 
"MerchantCardId" : "ace0adc7-cd8d-4264-85ad-a7ac00990208",
}

package com.hepsipay.sample;

import com.hepsipay.client.model.request.card.CardQueryRequest;
import com.hepsipay.client.model.response.OAuthResponse;
import com.hepsipay.client.model.response.card.CardQueryResponse;
import com.hepsipay.client.service.OAuthService;
import com.hepsipay.client.service.card.CardService;

/**
 * 
 * @author Ahmet Faruk Bişkinler,
 * @Support PixelTürk Web Studio, "destek@pixelturk.net"
 *
 */
public class SampleCardQuery extends Sample {

	public static void main(String[] args) {
		CardQueryRequest queryCardRequest = new CardQueryRequest();
		queryCardRequest.setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
		queryCardRequest.setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)
		queryCardRequest.setMerchantCardUserId(null);

		CardService cardService = new CardService(hepsiPaySettings);
		OAuthService oauthService = new OAuthService(hepsiPaySettings);
		OAuthResponse login = oauthService.login();
		CardQueryResponse queryResponse = cardService.queryCard(queryCardRequest, login);
	}
	
}


 <?php 

require_once('config.php');

/**
 * Query Registered Card Request
 * Kayıtlı Kartları Sorgulama İsteği Oluştur
 */
$request = new \Hepsipay\Request\QueryCardRequest();

/**
 * Set Options
 * Ayarları Set Et
 */
$request->setOptions($options);

$request->setId("84095ee7-232a-4134-8be1-a6dd0135bff8"); // Kartı bilgisi tekil kodu (Guid değeridir.)
$request->setCardNumber("4508034508034509"); // Kart Numarası (15 veya 16 haneli nümerik değerdir.)
$request->setMaskedCardNumber("450803*****4509"); // Maskelenmiş kart bilgisi (Maksimum 15 ya da 16 karakterdir.)
$request->setExpireMonth("12"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
$request->setExpireYear("20"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
$request->setMerchantUserId("User_2"); // Kullanıcı kodu (Maksimum 40 karakterdir.)
$request->setMerchantUserCardId("Bankxxx_yyy_kartı"); // Kullanıcı kartı bilgisi kodu (Maksimum 40 karakterdir.)
$request->setCompanyId("9149379b-1b10-4f8e-a2df-a4d500961230"); // Şirkete bilgisi tekil kodu


/**
 * Make Request
 * İsteği Oluştur
 */
$response = \Hepsipay\Model\QueryCard::create($request);

/**
 * Print Response ve Request Details
 * Yanıtı ve İstek Detaylarını Yazdır
 */
echo "<pre>";
echo "\nRESPONSE\n\n";
print_r($response); // Response
echo "\nREQUEST\n\n";
print_r($request->toJsonString()); // Request
echo "</pre>";

 
 

 
var request = new GetMerchantCardRequest
{
	ApiKey = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJBcGlLZXkiOiJhNTNkZjYwZjUwNmY0MzBjYTRjNzQzNTRkNDU1Y2RlYyJ9.O-eJWMK1sHt3JZgHFsnJp6yyiqmbzdyuOOe0-AvnHzg",
	Id = Guid.Parse("cf236f4d-4a74-4d7f-b54e-a75c00fbc622"),
	MerchantCardUserId = "1234421",
	MerchantUserId = "131231",
	Email = "ahmetmehmet@hepsipay.com",
	ReferenceId1 = "14324234",
	PagerInputDto = new PagerInputModel { PageIndex = 1, PageSize = 10 }
};

var apiUrl = "https://apientgr.hepsipay.com/cards/merchantquery";

var response = _cardProcessor.GetCard(request, apiUrl, "123");

Web Servis Cevabı


{
"MerchantCardDtos":[
{
"Id":"4e04b4a7-a62c-4845-b83c-a705010a7899",
"MaskedCardNumber":"581877*****2285",
"MerchantUserId":"10000",
"MerchantCardUserId":"10001",
"FullName":null,
"BankName":"Aktifbank",
"MerchantUrl":"www.can_retail.com",
"ExpireYear":"18",
"ExpireMonth":"12"
}
],
"PagerState":{
"HasNextPage":false,
"HasPreviousPage":false,
"PageIndex":1,
"PageSize":2147483647,
"TotalCount":1,
"TotalPages":1
},
"Success":true,
"MessageCode":"0000",
"Message":"Başarılı",
"UserMessage":"İşleminiz başarıyla gerçekleşmiştir."
}

Saklanmış Kart İle Satış İşlemi

MerchantCardId alanında saklı olan kartın Id'sini göndermeniz yeterli olacaktır.

Standart Ödeme


{
"version":"1.0",
"apikey":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM",
"transactiontime":1443600845,
"transactionId":"tx_123345679",
"signature":"7f244081abfee41ffe7e5f8936c56a59df1d1cef9ae436a743ce94a4841d4760",
"description":"E-ticaret Ödemesi",
"amount":12300,
"currency":"TRY",
"installment":9,
"MerchantCardId":"88DECD10-2932-4466-A8C6-A69700BFA0B7",
"basketitems":[
{
"description":"Boyama Kalem Seti",
"productcode":"7cefdf61-38cd-4b35-b5f0-4c98c5805d41",
"amount":8750,
"vatratio":18,
"count":1,
"url":"http: //www.alivelimarket.com.tr/boyama-kalem-seti",
"BasketItemType":1,
"BasketItemId":"basket_1"
},
{
"description":"Boyama Kitabı",
"productcode":"7cefdf61-38cd-4b35-b5f0-4c98c5805d41",
"amount":2550,
"vatratio":18,
"count":3,
"url":"http: //www. alivelimarket.com.tr/boyama-kitabi",
"BasketItemType":1,
"BasketItemId":"basket_2"
},
{
"description":"KargoBedeli",
"amount":1000,
"vatratio":"18",
"count":1,
"BasketItemType":3,
"BasketItemId":"basket_3"
}
],
"customer":{
"name":"Ali",
"surname":"Veli",
"email":"ali.veli@alivelimarket.com.tr",
"ipaddress":"72.125.165.16",
"phonenumber":"5337654321",
"code":"7cefdf61-38cd-4b35-b5f0-4c98c5805d41",
"tckn":12345678910,
"VatNumber":12345678910,
"MemberSince":20151124,
"Birthdate":19781123
},
"shippingaddress":{
"name":"Ali Veli",
"address":"Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Mecidiyeköy",
"country":"Türkiye",
"countrycode":"TUR",
"city":"İstanbul",
"citycode":"34",
"zipcode":"34580",
"District":"Şişli",
"DistrictCode":null,
"ShippingCompany":"XXX"
},
"invoiceaddress":{
"name":"Ali Veli",
"address":"Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Şişli",
"country":"Türkiye",
"countrycode":"TUR",
"city":"İstanbul",
"citycode":"34",
"zipcode":"34580",
"District":"Şişli",
"DistrictCode":null,
"ShippingCompany":"XXX"
},
"extras":[
{
"key":"INT_SPRS_KODU",
"value":"spr_123456789"
}
]
}

package com.hepsipay.sample;

import java.util.ArrayList;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.hepsipay.client.model.Basketitem;
import com.hepsipay.client.model.Card;
import com.hepsipay.client.model.Customer;
import com.hepsipay.client.model.Extra;
import com.hepsipay.client.model.InvoiceAddress;
import com.hepsipay.client.model.ShippingAddress;
import com.hepsipay.client.model.request.card.SavedCardPayment;
import com.hepsipay.client.model.request.payment.Payment;
import com.hepsipay.client.model.response.PaymentResponse;
import com.hepsipay.client.service.PaymentService;
import com.hepsipay.client.type.BasketItemType;
import com.hepsipay.client.type.Currency;
import com.hepsipay.client.util.HepsiPayUtil;

/**
 * 
 * @author Ahmet Faruk Bişkinler,
 * @Support PixelTürk Web Studio, "destek@pixelturk.net"
 *
 */
public class SamplePaymentWithSavedCard extends Sample {
	private final static Logger logger = LogManager.getRootLogger();
	
	public static void main(String[] args) {
		Payment paymentRequest = new Payment();
		
		/**
		 * Create Payment Request
		 * Ödeme İsteği Oluştur
		 */
		//		paymentRequest.setTransactiontime();    // Ödeme İşlem Zamanı, Varsayılan zaman ise şuan.
		//		paymentRequest.setTransactionId("tx_" .  rand(100000, 999999));    // Ödemeye Ait Tekil Kodu (Maksimum 40 karakterdir)
		paymentRequest.setTransactionId(HepsiPayUtil.generateRandomTranstionId()); // Ödemeye Ait Tekil Kodu (Maksimum 40 karakterdir)
		paymentRequest.setDescription("E-Ticaret Ödemesi"); // Açıklama alanıdır (Maksimum 40 karakterdir)
		paymentRequest.setAmount("120,99"); // Toplam Ödeme Tutarı
		paymentRequest.setCurrency(Currency.TL.getCode()); // Toplam Ödeme Tutar Birimi
		paymentRequest.setInstallment(9); // Ödeme Taksit Sayısı (1'den 12'ye kadar taksit değeridir)
		
		/**
		 * Credit Card Info
		 * Kredi Kartı Bilgileri
		 */
		Card card = new Card();
		card.setCardHolderName("John Doe"); // Kart İsim Soyisim (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder)
		card.setCardNumber("4531444531442283"); // Kart Numarası (15 veya 16 haneli nümerik değerdir)
		card.setExpireMonth("12"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
		card.setExpireYear("18"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
		card.setSecuritycode("001"); // Kart CVV (3 veya 4 haneli nümerik değerdir.)
		paymentRequest.setCard(card);
		
		/**
		 * Customer Info
		 * Müşteri Bilgileri
		 */
		Customer customer = new Customer();
		customer.setName("Ali"); // Müşteri İsim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		customer.setSurname("Veli"); // Müşteri Soyisim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		customer.setEmail("ali.veli@alivelimarket.com.tr"); // Müşteri Mail (Eposta adresidir.)
		customer.setIpaddress("72.125.165.16"); // Müşteri IP Adresi (IP adresidir.)
		customer.setPhonenumber("+905350000000"); // Müşteri Telefon Numarası (Maksimum 13 karakterdir. Sadece nümerik ve + değerlerini alabilir.)
		customer.setCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Müşteri Kodu (Maksimum 36 karakterdir.)
		customer.setTckn("12345678910"); // Müşteri Kimik Numarısı (TC Kimlik numarasıdır.)
		customer.setVatNumber("12345678910"); // Müşteri Vergi Numarası (Şirketlere ve firmalara tekil vergi numarası)
		customer.setMemberSince("20151124"); // Müşteri Üyelik tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
		customer.setBirthdate("19781123"); // Müşteri Doğum tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
		paymentRequest.setCustomer(customer);
		
		/**
		 * Shipping Address
		 * Teslimat/Nakliye Adresi
		 */
		ShippingAddress shippingAddress = new ShippingAddress();
		shippingAddress.setName("Ali Veli"); // Sipariş Teslimatının yapılacağı kişi adı ve soyadı (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		shippingAddress.setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Mecidiyeköy"); // Siparişin teslim edileceği adres (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
		shippingAddress.setCountry("Türkiye"); // Sipariş teslimatının yapılacağı ülke (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
		shippingAddress.setCountrycode("TUR"); // Sipariş teslimatının yapılacağı ülke (2 veya 3 haneli ISO ülke kodudur.Sadece alfabetik olabilir.)
		shippingAddress.setCity("Istanbul"); // Sipariş teslimatının yapılacağı şehir (Maksimum 20 karakterdir.Sadece alfabetik olabilir.)
		shippingAddress.setCitycode("34"); // Sipariş teslimatının yapılacağı şehir (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
		shippingAddress.setZipcode("34580"); // Sipariş teslimatının yapılacağı posta kodu (Uluslararası posta kodu alanıdır.)
		shippingAddress.setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
		shippingAddress.setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
		shippingAddress.setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
		paymentRequest.setShippingaddress(shippingAddress);
		
		/**
		 * Invoice Address
		 * Fature Adresi
		 */
		InvoiceAddress invoceAddress = new InvoiceAddress();
		invoceAddress.setName("Ali Veli"); // Fatura kesilecek kişi veya kurum adı (Maksimum 40 karakterdir. Sadece alfanümerik karakterler, & . ve boşluk karakterini kabul eder.)
		invoceAddress.setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Şişli"); // Fatura adresi (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
		invoceAddress.setCountry("Türkiye"); // Fatura ülkesi (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
		invoceAddress.setCountrycode("TUR"); // Fatura ülkesi (2 veya 3 haneli ISO ülke kodudur. Sadece alfabetik olabilir.)
		invoceAddress.setCity("Istanbul"); // Fatura şehri (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
		invoceAddress.setCitycode("34"); // Fatura şehri (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
		invoceAddress.setZipcode("34580"); // Fatura zip code (Uluslararası posta kodu alanıdır.)
		invoceAddress.setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
		invoceAddress.setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
		invoceAddress.setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
		paymentRequest.setInvoiceaddress(invoceAddress);
		
		/**
		 * Cart
		 * Sepet
		 */
		List basketList = new ArrayList<>();
		Basketitem firstBasketitem = new Basketitem();
		firstBasketitem.setDescription("Boyama Kalem Seti"); // Ürün ismi (Maksimum 40 karakterdir.)
		firstBasketitem.setProductcode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Ürün kodu (Maksimum 36 karakterdir.)
		firstBasketitem.setAmount("87,50"); // Ürün fiyatı (Nokta ve virgülden arındırılmış double değerdir.)
		firstBasketitem.setVatratio("18"); // Tutarın KDV içerip içermediğini belirtir (0, 8 veya 18 değerlerini alabilir.)
		firstBasketitem.setCount("1"); // Ürün miktarı (Maksimum 3 haneli nümerik değerdir.)
		firstBasketitem.setUrl("http://www.alivelimarket.com.tr/boyama-kalem-seti"); // Ürün web adresi (Web URL'idir)
		firstBasketitem.setBasketItemType(BasketItemType.PHYSICAL.getCode()); // Ürün tipi (Ürünler için PHYSICAL, Kargo bilgisi için SHIPPING.)
		firstBasketitem.setBasketItemId("basket_1"); // Ürün kodu (Maksimum 40 karakterdir.)
		basketList.add(firstBasketitem);
		
		Basketitem secondBasketitem = new Basketitem();
		secondBasketitem.setDescription("Boyama Kitabı");
		secondBasketitem.setProductcode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41");
		secondBasketitem.setAmount("25,50");
		secondBasketitem.setVatratio("18");
		secondBasketitem.setCount("3");
		secondBasketitem.setUrl("http://www.alivelimarket.com.tr/boyama-kitabi");
		secondBasketitem.setBasketItemType(BasketItemType.PHYSICAL.getCode());
		secondBasketitem.setBasketItemId("basket_2");
		basketList.add(secondBasketitem);
		
		Basketitem thirdBasketitem = new Basketitem();
		thirdBasketitem.setDescription("KargoBedeli");
		thirdBasketitem.setAmount("10,00");
		thirdBasketitem.setVatratio("18");
		thirdBasketitem.setCount("1");
		thirdBasketitem.setBasketItemType(BasketItemType.SHIPPING.getCode());
		thirdBasketitem.setBasketItemId("basket_3");
		basketList.add(thirdBasketitem);
		
		paymentRequest.setBasketitems(basketList);
		
		List extraList = new ArrayList<>();
		Extra extra1 = new Extra();
		extra1.setKey("INT_SPRS_KODU");
		extra1.setValue("spr_123456789");
		extraList.add(extra1);

		Extra extra2 = new Extra();
		extra2.setKey("INT_MUSTERI_KODU");
		extra2.setValue("mus_123456789");
		extraList.add(extra2);
		
		paymentRequest.setExtras(extraList);

		SavedCardPayment savedCardPayment = new SavedCardPayment(paymentRequest);
		savedCardPayment.setCard(null);
		savedCardPayment.setMerchantCardId("93da18c7-2de2-4a9f-9fbf-a7160149f767");
		
		PaymentService paymentService = new PaymentService(hepsiPaySettings);
		PaymentResponse paymentResponse = paymentService.makePayment(savedCardPayment);
		
		logger.debug(paymentResponse);
	}
	
}

 
 


		<?php 

require_once('config.php');

/**
 * Create Payment Request
 * Ödeme İsteği Oluştur
 */
$request = new \Hepsipay\Request\CreatePaymentRequest();

/**
 * Set Options
 * Ayarları Set Et
 */
$request->setOptions($options);

$request->setTransactionTime();    // Ödeme İşlem Zamanı, Varsayılan zaman ise şuan.
$request->setTransactionId("tx_" . rand(100000, 999999));    // Ödemeye Ait Tekil Kodu (Maksimum 40 karakterdir)
$request->setDescription("Kartlı E-Ticaret Ödemesi"); // Açıklama alanıdır (Maksimum 40 karakterdir)
$request->setAmount("12099"); // Toplam Ödeme Tutarı (120,99 TL için 12099 girilmesi gerekmektedir. Diğer örnek: 1 TL için 100 giriniz.)
$request->setCurrency(\Hepsipay\Model\Currency::TL); // Toplam Ödeme Tutar Birimi
$request->setInstallment(9); // Ödeme Taksit Sayısı (1'den 12'ye kadar taksit değeridir)

/**
 * Registered Card Info
 * Kayıtlı Kart Bilgileri
 */
$request->setMerchantCardId("93da18c7-2de2-4a9f-9fbf-a7160149f767");

/**
 * Customer Info
 * Müşteri Bilgileri
 */
$customer = new \Hepsipay\Model\Customer();
$customer->setName("Ali"); // Müşteri İsim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$customer->setSurName("Veli"); // Müşteri Soyisim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$customer->setEmail("ali.veli@alivelimarket.com.tr"); // Müşteri Mail (Eposta adresidir.)
$customer->setIpAddress("72.125.165.16"); // Müşteri IP Adresi (IP adresidir.)
$customer->setPhoneNumber("+905350000000"); // Müşteri Telefon Numarası (Maksimum 13 karakterdir. Sadece nümerik ve + değerlerini alabilir.)
$customer->setCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Müşteri Kodu (Maksimum 36 karakterdir.)
$customer->setTckn("12345678910"); // Müşteri Kimik Numarısı (TC Kimlik numarasıdır.)
$customer->setVatNumber("12345678910"); // Müşteri Vergi Numarası (Şirketlere ve firmalara tekil vergi numarası)
$customer->setMemberSince("20151124"); // Müşteri Üyelik tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
$customer->setBirthDate("19781123"); // Müşteri Doğum tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
$request->setCustomer($customer);

/**
 * Shipping Address
 * Teslimat/Nakliye Adresi
 */
$shippingAddress = new \Hepsipay\Model\Address();
$shippingAddress->setName("Ali Veli"); // Sipariş Teslimatının yapılacağı kişi adı ve soyadı (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$shippingAddress->setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Mecidiyeköy"); // Siparişin teslim edileceği adres (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
$shippingAddress->setCountry("Türkiye"); // Sipariş teslimatının yapılacağı ülke (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
$shippingAddress->setCountryCode("TUR"); // Sipariş teslimatının yapılacağı ülke (2 veya 3 haneli ISO ülke kodudur.Sadece alfabetik olabilir.)
$shippingAddress->setCity("Istanbul"); // Sipariş teslimatının yapılacağı şehir (Maksimum 20 karakterdir.Sadece alfabetik olabilir.)
$shippingAddress->setCityCode("34"); // Sipariş teslimatının yapılacağı şehir (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
$shippingAddress->setZipCode("34580"); // Sipariş teslimatının yapılacağı posta kodu (Uluslararası posta kodu alanıdır.)
$shippingAddress->setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
$shippingAddress->setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
$shippingAddress->setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
$request->setShippingAddress($shippingAddress);

/**
 * Invoice Address
 * Fature Adresi
 */
$invoceAddress = new \Hepsipay\Model\Address();
$invoceAddress->setName("Ali Veli"); // Fatura kesilecek kişi veya kurum adı (Maksimum 40 karakterdir. Sadece alfanümerik karakterler, & . ve boşluk karakterini kabul eder.)
$invoceAddress->setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Şişli"); // Fatura adresi (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
$invoceAddress->setCountry("Türkiye"); // Fatura ülkesi (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
$invoceAddress->setCountryCode("TUR"); // Fatura ülkesi (2 veya 3 haneli ISO ülke kodudur. Sadece alfabetik olabilir.)
$invoceAddress->setCity("Istanbul"); // Fatura şehri (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
$invoceAddress->setCityCode("34"); // Fatura şehri (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
$invoceAddress->setZipCode("34580"); // Fatura zip code (Uluslararası posta kodu alanıdır.)
$invoceAddress->setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
$invoceAddress->setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
$invoceAddress->setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
$request->setInvoiceAddress($invoceAddress);

/**
 * Cart
 * Sepet
 */
$basketItems = array();
$firstBasketItem = new \Hepsipay\Model\BasketItem();
$firstBasketItem->setDescription("Boyama Kalem Seti"); // Ürün ismi (Maksimum 40 karakterdir.)
$firstBasketItem->setProductCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Ürün kodu (Maksimum 36 karakterdir.)
$firstBasketItem->setAmount("8750"); // Ürün fiyatı (Nokta ve virgülden arındırılmış double değerdir.)
$firstBasketItem->setVatRatio("18"); // Tutarın KDV içerip içermediğini belirtir (0, 8 veya 18 değerlerini alabilir.)
$firstBasketItem->setCount("1"); // Ürün miktarı (Maksimum 3 haneli nümerik değerdir.)
$firstBasketItem->setUrl("http://www.alivelimarket.com.tr/boyama-kalem-seti"); // Ürün web adresi (Web URL'idir)
$firstBasketItem->setBasketItemType(\Hepsipay\Model\BasketItemType::PHYSICAL); // Ürün tipi (Ürünler için PHYSICAL, Kargo bilgisi için SHIPPING.)
$firstBasketItem->setBasketItemId("basket_1");  // Ürün kodu (Maksimum 40 karakterdir.)
$basketItems[] = $firstBasketItem;

$secondBasketItem = new \Hepsipay\Model\BasketItem();
$secondBasketItem->setDescription("Boyama Kitabı");
$secondBasketItem->setProductCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41");
$secondBasketItem->setAmount("2550");
$secondBasketItem->setVatRatio("18");
$secondBasketItem->setCount("3");
$secondBasketItem->setUrl("http://www.alivelimarket.com.tr/boyama-kitabi");
$secondBasketItem->setBasketItemType(\Hepsipay\Model\BasketItemType::PHYSICAL);
$secondBasketItem->setBasketItemId("basket_2");
$basketItems[1] = $secondBasketItem;

$thirdBasketItem = new \Hepsipay\Model\BasketItem();
$thirdBasketItem->setDescription("KargoBedeli");
$thirdBasketItem->setAmount("1000");
$thirdBasketItem->setVatRatio("18");
$thirdBasketItem->setCount("1");
$thirdBasketItem->setBasketItemType(\Hepsipay\Model\BasketItemType::SHIPPING);
$thirdBasketItem->setBasketItemId("basket_3");
$basketItems[] = $thirdBasketItem;

$request->setBasketItems($basketItems);

/**
 * Make Request
 * İsteği Oluştur
 */
$response = \Hepsipay\Model\Payment::create($request);

/**
 * Print Response ve Request Details
 * Yanıtı ve İstek Detaylarını Yazdır
 */
echo "<pre>";
echo "\nRESPONSE\n\n";
print_r($response); // Response
echo "\nREQUEST\n\n";
print_r($request->toJsonString()); // Request
echo "</pre>";


3D’ li Ödeme


 {
"version":"1.0",
"apikey":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoxLCJhcGlLZXkiOiJkODIxODE4ODFkZGI0N2I3YmRhM2NmNTNmMTZiMTQ1ZCJ9.TNbaRt7tlsrz0i8-QSpzabMcFJ8ZIIHauvKn2DM5vLM",
"transactiontime":1443600845,
"transactionId":"tx_123345679",
"signature":"7f244081abfee41ffe7e5f8936c56a59df1d1cef9ae436a743ce94a4841d4760",
"description":"E-ticaret Ödemesi",
"amount":12300,
"currency":"TRY",
"installment":9,
"MerchantCardId":"88DECD10-2932-4466-A8C6-A69700BFA0B7",
"basketitems":[
{
"description":"Boyama Kalem Seti",
"productcode":"7cefdf61-38cd-4b35-b5f0-4c98c5805d41",
"amount":8750,
"vatratio":18,
"count":1,
"url":"http: //www.alivelimarket.com.tr/boyama-kalem-seti",
"BasketItemType":1,
"BasketItemId":"basket_1"
},
{
"description":"Boyama Kitabı",
"productcode":"7cefdf61-38cd-4b35-b5f0-4c98c5805d41",
"amount":2550,
"vatratio":18,
"count":3,
"url":"http: //www. alivelimarket.com.tr/boyama-kitabi",
"BasketItemType":1,
"BasketItemId":"basket_2"
},
{
"description":"KargoBedeli",
"amount":1000,
"vatratio":"18",
"count":1,
"BasketItemType":3,
"BasketItemId":"basket_3"
}
],
"customer":{
"name":"Ali",
"surname":"Veli",
"email":"ali.veli@alivelimarket.com.tr",
"ipaddress":"72.125.165.16",
"phonenumber":"5337654321",
"code":"7cefdf61-38cd-4b35-b5f0-4c98c5805d41",
"tckn":12345678910,
"VatNumber":12345678910,
"MemberSince":20151124,
"Birthdate":19781123
},
"shippingaddress":{
"name":"Ali Veli",
"address":"Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Mecidiyeköy",
"country":"Türkiye",
"countrycode":"TUR",
"city":"İstanbul",
"citycode":"34",
"zipcode":"34580",
"District":"Şişli",
"DistrictCode":null,
"ShippingCompany":"XXX"
},
"invoiceaddress":{
"name":"Ali Veli",
"address":"Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Şişli",
"country":"Türkiye",
"countrycode":"TUR",
"city":"İstanbul",
"citycode":"34",
"zipcode":"34580",
"District":"Şişli",
"DistrictCode":null,
"ShippingCompany":"XXX"
},
"extras":[
{
"key":"INT_SPRS_KODU",
"value":"spr_123456789"
}
]
}
 

 

package com.hepsipay.sample;

import java.util.ArrayList;
import java.util.List;

import com.hepsipay.client.model.Basketitem;
import com.hepsipay.client.model.Card;
import com.hepsipay.client.model.Customer;
import com.hepsipay.client.model.Extra;
import com.hepsipay.client.model.InvoiceAddress;
import com.hepsipay.client.model.ShippingAddress;
import com.hepsipay.client.model.request.card.SavedCardPayment;
import com.hepsipay.client.model.request.payment.Payment3D;
import com.hepsipay.client.service.PaymentService;
import com.hepsipay.client.type.BasketItemType;
import com.hepsipay.client.type.Currency;
import com.hepsipay.client.util.HepsiPayUtil;

/**
 * 
 * @author Ahmet Faruk Bişkinler,
 * @Support PixelTürk Web Studio, "destek@pixelturk.net"
 *
 */
public class SamplePayment3DWithSavedCard extends Sample {
	
	public static void main(String[] args) {
		Payment3D payment3DRequest = new Payment3D();
		/**
		 * Create Payment3D Request
		 * Ödeme İsteği Oluştur
		 */
		//		payment3DRequest.setTransactiontime();    // Ödeme İşlem Zamanı, Varsayılan zaman ise şuan.
		//		payment3DRequest.setTransactionId("tx_" .  rand(100000, 999999));    // Ödemeye Ait Tekil Kodu (Maksimum 40 karakterdir)
		payment3DRequest.setTransactionId(HepsiPayUtil.generateRandomTranstionId()); // Ödemeye Ait Tekil Kodu (Maksimum 40 karakterdir)
		payment3DRequest.setDescription("E-Ticaret Ödemesi"); // Açıklama alanıdır (Maksimum 40 karakterdir)
		payment3DRequest.setAmount("120,99"); // Toplam Ödeme Tutarı
		payment3DRequest.setCurrency(Currency.TL.getCode()); // Toplam Ödeme Tutar Birimi
		payment3DRequest.setInstallment(9); // Ödeme Taksit Sayısı (1'den 12'ye kadar taksit değeridir)
		
		payment3DRequest.setSuccessUrl("http://example.com/payment_response.jsp?status=success"); // 3d secure işlemler için zorunlu bir alandır.İşlemin başarılı olması durumunda üye işyerine tarafından geliştirilmiş sayfanın URL'si yazılmalıdır.
		   payment3DRequest.setFailUrl("http://example.com/payment_response.jsp?status=fail"); // 3d secure işlemler için zorunlu bir alandır.İşlemin başarılı olması durumunda üye işyerine tarafından geliştirilmiş sayfanın URL'si yazılmalıdır.
		
		/**
		 * Credit Card Info
		 * Kredi Kartı Bilgileri
		 */
		Card card = new Card();
		card.setCardHolderName("John Doe"); // Kart İsim Soyisim (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder)
		card.setCardNumber("4531444531442283"); // Kart Numarası (15 veya 16 haneli nümerik değerdir)
		card.setExpireMonth("12"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
		card.setExpireYear("18"); // Kart Son Kullanım Tarihi (2 haneli nümerik değerdir.)
		card.setSecuritycode("001"); // Kart CVV (3 veya 4 haneli nümerik değerdir.)
		payment3DRequest.setCard(card);
		
		/**
		 * Customer Info
		 * Müşteri Bilgileri
		 */
		Customer customer = new Customer();
		customer.setName("Ali"); // Müşteri İsim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		customer.setSurname("Veli"); // Müşteri Soyisim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		customer.setEmail("ali.veli@alivelimarket.com.tr"); // Müşteri Mail (Eposta adresidir.)
		customer.setIpaddress("72.125.165.16"); // Müşteri IP Adresi (IP adresidir.)
		customer.setPhonenumber("+905350000000"); // Müşteri Telefon Numarası (Maksimum 13 karakterdir. Sadece nümerik ve + değerlerini alabilir.)
		customer.setCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Müşteri Kodu (Maksimum 36 karakterdir.)
		customer.setTckn("12345678910"); // Müşteri Kimik Numarısı (TC Kimlik numarasıdır.)
		customer.setVatNumber("12345678910"); // Müşteri Vergi Numarası (Şirketlere ve firmalara tekil vergi numarası)
		customer.setMemberSince("20151124"); // Müşteri Üyelik tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
		customer.setBirthdate("19781123"); // Müşteri Doğum tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
		payment3DRequest.setCustomer(customer);
		
		/**
		 * Shipping Address
		 * Teslimat/Nakliye Adresi
		 */
		ShippingAddress shippingAddress = new ShippingAddress();
		shippingAddress.setName("Ali Veli"); // Sipariş Teslimatının yapılacağı kişi adı ve soyadı (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
		shippingAddress.setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Mecidiyeköy"); // Siparişin teslim edileceği adres (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
		shippingAddress.setCountry("Türkiye"); // Sipariş teslimatının yapılacağı ülke (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
		shippingAddress.setCountrycode("TUR"); // Sipariş teslimatının yapılacağı ülke (2 veya 3 haneli ISO ülke kodudur.Sadece alfabetik olabilir.)
		shippingAddress.setCity("Istanbul"); // Sipariş teslimatının yapılacağı şehir (Maksimum 20 karakterdir.Sadece alfabetik olabilir.)
		shippingAddress.setCitycode("34"); // Sipariş teslimatının yapılacağı şehir (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
		shippingAddress.setZipcode("34580"); // Sipariş teslimatının yapılacağı posta kodu (Uluslararası posta kodu alanıdır.)
		shippingAddress.setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
		shippingAddress.setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
		shippingAddress.setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
		payment3DRequest.setShippingaddress(shippingAddress);
		
		/**
		 * Invoice Address
		 * Fature Adresi
		 */
		InvoiceAddress invoceAddress = new InvoiceAddress();
		invoceAddress.setName("Ali Veli"); // Fatura kesilecek kişi veya kurum adı (Maksimum 40 karakterdir. Sadece alfanümerik karakterler, & . ve boşluk karakterini kabul eder.)
		invoceAddress.setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Şişli"); // Fatura adresi (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
		invoceAddress.setCountry("Türkiye"); // Fatura ülkesi (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
		invoceAddress.setCountrycode("TUR"); // Fatura ülkesi (2 veya 3 haneli ISO ülke kodudur. Sadece alfabetik olabilir.)
		invoceAddress.setCity("Istanbul"); // Fatura şehri (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
		invoceAddress.setCitycode("34"); // Fatura şehri (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
		invoceAddress.setZipcode("34580"); // Fatura zip code (Uluslararası posta kodu alanıdır.)
		invoceAddress.setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
		invoceAddress.setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
		invoceAddress.setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
		payment3DRequest.setInvoiceaddress(invoceAddress);
		
		/**
		 * Cart
		 * Sepet
		 */
		List basketList = new ArrayList<>();
		Basketitem firstBasketitem = new Basketitem();
		firstBasketitem.setDescription("Boyama Kalem Seti"); // Ürün ismi (Maksimum 40 karakterdir.)
		firstBasketitem.setProductcode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Ürün kodu (Maksimum 36 karakterdir.)
		firstBasketitem.setAmount("87,50"); // Ürün fiyatı (Nokta ve virgülden arındırılmış double değerdir.)
		firstBasketitem.setVatratio("18"); // Tutarın KDV içerip içermediğini belirtir (0, 8 veya 18 değerlerini alabilir.)
		firstBasketitem.setCount("1"); // Ürün miktarı (Maksimum 3 haneli nümerik değerdir.)
		firstBasketitem.setUrl("http://www.alivelimarket.com.tr/boyama-kalem-seti"); // Ürün web adresi (Web URL'idir)
		firstBasketitem.setBasketItemType(BasketItemType.PHYSICAL.getCode()); // Ürün tipi (Ürünler için PHYSICAL, Kargo bilgisi için SHIPPING.)
		firstBasketitem.setBasketItemId("basket_1"); // Ürün kodu (Maksimum 40 karakterdir.)
		basketList.add(firstBasketitem);
		
		Basketitem secondBasketitem = new Basketitem();
		secondBasketitem.setDescription("Boyama Kitabı");
		secondBasketitem.setProductcode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41");
		secondBasketitem.setAmount("25,50");
		secondBasketitem.setVatratio("18");
		secondBasketitem.setCount("3");
		secondBasketitem.setUrl("http://www.alivelimarket.com.tr/boyama-kitabi");
		secondBasketitem.setBasketItemType(BasketItemType.PHYSICAL.getCode());
		secondBasketitem.setBasketItemId("basket_2");
		basketList.add(secondBasketitem);
		
		Basketitem thirdBasketitem = new Basketitem();
		thirdBasketitem.setDescription("KargoBedeli");
		thirdBasketitem.setAmount("10,00");
		thirdBasketitem.setVatratio("18");
		thirdBasketitem.setCount("1");
		thirdBasketitem.setBasketItemType(BasketItemType.SHIPPING.getCode());
		thirdBasketitem.setBasketItemId("basket_3");
		basketList.add(thirdBasketitem);

		payment3DRequest.setBasketitems(basketList);

		List extraList = new ArrayList<>();
		Extra extra1 = new Extra();
		extra1.setKey("INT_SPRS_KODU");
		extra1.setValue("spr_123456789");
		extraList.add(extra1);

		Extra extra2 = new Extra();
		extra2.setKey("INT_MUSTERI_KODU");
		extra2.setValue("mus_123456789");
		extraList.add(extra2);
		
		payment3DRequest.setExtras(extraList);
		
		SavedCardPayment savedCardPayment = new SavedCardPayment(payment3DRequest);
		savedCardPayment.setCard(null);
		savedCardPayment.setMerchantCardId("e62d8563-0376-44f8-bf3c-a71a0103a3a6");

		PaymentService payment3DService = new PaymentService(hepsiPaySettings);
		payment3DService.makePayment3D(savedCardPayment);
	}

}

 

<?php 

require_once('config.php');

/**
 * Create 3D Payment Request
 * 3D Ödeme İsteği Oluştur
 */
$request = new \Hepsipay\Request\CreateThreeDSecurePaymentRequest();

/**
 * Set Options
 * Ayarları Set Et
 */
$request->setOptions($options);

$request->setTransactionTime();    // Ödeme İşlem Zamanı, Varsayılan zaman ise şuan.
$request->setTransactionId("tx_" . rand(100000, 999999));    // Ödemeye Ait Tekil Kodu (Maksimum 40 karakterdir)
$request->setDescription("Kartlı 3D E-Ticaret Ödemesi"); // Açıklama alanıdır (Maksimum 40 karakterdir)
$request->setAmount("12099"); // Toplam Ödeme Tutarı (120,99 TL için 12099 girilmesi gerekmektedir. Diğer örnek: 1 TL için 100 giriniz.)
$request->setCurrency(\Hepsipay\Model\Currency::TL); // Toplam Ödeme Tutar Birimi
$request->setInstallment(9); // Ödeme Taksit Sayısı (1'den 12'ye kadar taksit değeridir)
$request->setSuccessUrl("http://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']). "/retrieve_threed_secure_payment_response.php?status=success"); // 3d secure işlemler için zorunlu bir alandır.İşlemin başarılı olması durumunda üye işyerine tarafından geliştirilmiş sayfanın URL'si yazılmalıdır.
$request->setFailUrl("http://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']) . "/retrieve_threed_secure_payment_response.php?status=fail"); // 3d secure işlemler için zorunlu bir alandır.İşlemin başarılı olması durumunda üye işyerine tarafından geliştirilmiş sayfanın URL'si yazılmalıdır.

/**
 * Registered Card Info
 * Kayıtlı Kart Bilgileri
 */
$request->setMerchantCardId("e62d8563-0376-44f8-bf3c-a71a0103a3a6");

/**
 * Customer Info
 * Müşteri Bilgileri
 */
$customer = new \Hepsipay\Model\Customer();
$customer->setName("Ali"); // Müşteri İsim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$customer->setSurName("Veli"); // Müşteri Soyisim (Maksimum 20 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$customer->setEmail("ali.veli@alivelimarket.com.tr"); // Müşteri Mail (Eposta adresidir.)
$customer->setIpAddress("72.125.165.16"); // Müşteri IP Adresi (IP adresidir.)
$customer->setPhoneNumber("+905350000000"); // Müşteri Telefon Numarası (Maksimum 13 karakterdir. Sadece nümerik ve + değerlerini alabilir.)
$customer->setCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Müşteri Kodu (Maksimum 36 karakterdir.)
$customer->setTckn("12345678910"); // Müşteri Kimik Numarısı (TC Kimlik numarasıdır.)
$customer->setVatNumber("12345678910"); // Müşteri Vergi Numarası (Şirketlere ve firmalara tekil vergi numarası)
$customer->setMemberSince("20151124"); // Müşteri Üyelik tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
$customer->setBirthDate("19781123"); // Müşteri Doğum tarihi (Müşteri üyelik tarihi formatı YYYYMMDD’dır.)
$request->setCustomer($customer);

/**
 * Shipping Address
 * Teslimat/Nakliye Adresi
 */
$shippingAddress = new \Hepsipay\Model\Address();
$shippingAddress->setName("Ali Veli"); // Sipariş Teslimatının yapılacağı kişi adı ve soyadı (Maksimum 40 karakterdir. Sadece alfabetik karakterler ve boşluk kabul eder.)
$shippingAddress->setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Mecidiyeköy"); // Siparişin teslim edileceği adres (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
$shippingAddress->setCountry("Türkiye"); // Sipariş teslimatının yapılacağı ülke (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
$shippingAddress->setCountryCode("TUR"); // Sipariş teslimatının yapılacağı ülke (2 veya 3 haneli ISO ülke kodudur.Sadece alfabetik olabilir.)
$shippingAddress->setCity("Istanbul"); // Sipariş teslimatının yapılacağı şehir (Maksimum 20 karakterdir.Sadece alfabetik olabilir.)
$shippingAddress->setCityCode("34"); // Sipariş teslimatının yapılacağı şehir (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
$shippingAddress->setZipCode("34580"); // Sipariş teslimatının yapılacağı posta kodu (Uluslararası posta kodu alanıdır.)
$shippingAddress->setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
$shippingAddress->setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
$shippingAddress->setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
$request->setShippingAddress($shippingAddress);

/**
 * Invoice Address
 * Fature Adresi
 */
$invoceAddress = new \Hepsipay\Model\Address();
$invoceAddress->setName("Ali Veli"); // Fatura kesilecek kişi veya kurum adı (Maksimum 40 karakterdir. Sadece alfanümerik karakterler, & . ve boşluk karakterini kabul eder.)
$invoceAddress->setAddress("Kuştepe Mahallesi Mecidiyeköy Yolu Cad. No:12 Trump Towers Kule:2 Kat:11 Şişli"); // Fatura adresi (Maksimum 500 karakterdir. Sadece alfanümerik karakterler, &.,/: ve boşluk karakterini kabul eder.)
$invoceAddress->setCountry("Türkiye"); // Fatura ülkesi (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
$invoceAddress->setCountryCode("TUR"); // Fatura ülkesi (2 veya 3 haneli ISO ülke kodudur. Sadece alfabetik olabilir.)
$invoceAddress->setCity("Istanbul"); // Fatura şehri (Maksimum 20 karakterdir. Sadece alfabetik olabilir.)
$invoceAddress->setCityCode("34"); // Fatura şehri (Şehire ait ulusal veya uluslararası kod alanıdır. Türkiye için plaka kodu kullanılabilir.)
$invoceAddress->setZipCode("34580"); // Fatura zip code (Uluslararası posta kodu alanıdır.)
$invoceAddress->setDistrict("Şişli"); // Sipariş teslimatının yapılacağı ilçe (İlçe alanıdır.)
$invoceAddress->setDistrictCode(""); // Sipariş teslimatının yapılacağı ilçe kodu (İlçe kodu alanıdır.)
$invoceAddress->setShippingCompany("XXX"); // Taşıyıcı kargo bilgisi (Taşıyıcı kargo bilgisi alanıdır.)
$request->setInvoiceAddress($invoceAddress);

/**
 * Cart
 * Sepet
 */
$basketItems = array();
$firstBasketItem = new \Hepsipay\Model\BasketItem();
$firstBasketItem->setDescription("Boyama Kalem Seti"); // Ürün ismi (Maksimum 40 karakterdir.)
$firstBasketItem->setProductCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41"); // Ürün kodu (Maksimum 36 karakterdir.)
$firstBasketItem->setAmount("8750"); // Ürün fiyatı (Nokta ve virgülden arındırılmış double değerdir.)
$firstBasketItem->setVatRatio("18"); // Tutarın KDV içerip içermediğini belirtir (0, 8 veya 18 değerlerini alabilir.)
$firstBasketItem->setCount("1"); // Ürün miktarı (Maksimum 3 haneli nümerik değerdir.)
$firstBasketItem->setUrl("http://www.alivelimarket.com.tr/boyama-kalem-seti"); // Ürün web adresi (Web URL'idir)
$firstBasketItem->setBasketItemType(\Hepsipay\Model\BasketItemType::PHYSICAL); // Ürün tipi (Ürünler için PHYSICAL, Kargo bilgisi için SHIPPING.)
$firstBasketItem->setBasketItemId("basket_1");  // Ürün kodu (Maksimum 40 karakterdir.)
$basketItems[] = $firstBasketItem;

$secondBasketItem = new \Hepsipay\Model\BasketItem();
$secondBasketItem->setDescription("Boyama Kitabı");
$secondBasketItem->setProductCode("7cefdf61-38cd-4b35-b5f0-4c98c5805d41");
$secondBasketItem->setAmount("2550");
$secondBasketItem->setVatRatio("18");
$secondBasketItem->setCount("3");
$secondBasketItem->setUrl("http://www.alivelimarket.com.tr/boyama-kitabi");
$secondBasketItem->setBasketItemType(\Hepsipay\Model\BasketItemType::PHYSICAL);
$secondBasketItem->setBasketItemId("basket_2");
$basketItems[] = $secondBasketItem;

$thirdBasketItem = new \Hepsipay\Model\BasketItem();
$thirdBasketItem->setDescription("KargoBedeli");
$thirdBasketItem->setAmount("1000");
$thirdBasketItem->setVatRatio("18");
$thirdBasketItem->setCount("1");
$thirdBasketItem->setBasketItemType(\Hepsipay\Model\BasketItemType::SHIPPING);
$thirdBasketItem->setBasketItemId("basket_3");
$basketItems[] = $thirdBasketItem;

$request->setBasketItems($basketItems);

/**
 * Make Request
 * İsteği Oluştur
 */
$response = \Hepsipay\Model\ThreeDSecurePayment::create($request);

/**
 * Print Response ve Request Details
 * Yanıtı ve İstek Detaylarını Yazdır
 */
echo "<pre>";
echo "\nRESPONSE\n\n";
print_r($response); // Response
echo "\nREQUEST\n\n";
print_r($request->toJsonString()); // Request
echo "</pre>";


/**
 * Get HTML Codes
 * HTML Kodu Al
 *
 * Yorum satırını devredışı bırakıp bu kodu çalıştırdığınızda javascript çalışacağı için sayfa otomatik olarak ödeme sayfasında yönlenecektir
 */
 
echo $response->getHtmlCodes();

 

Web Servis Cevabı


 { 
  "Amount": 12300,
  "TransactionType": 0, 
  "Installment": 9, 
  "ApiKey": "1ca71cb09c7f4a2188fbddfa90efb481",
  "TransactionId": "tx_121345678912345", 
  "TransactionTime": "1447752023",
  "Signature": "8480954d54d94e5f272c53caa69efdcb0b678e837d3997eec42c4dbfa636cdde",
  "Currency": "TRY", 
  "Extras": [ { "Key": "INT_SPRS_KODU", "Value": "spr_123456789" } ],
  "Success": true, 
  "MessageCode": "0000", 
  "Message": "Başarılı", 
  "UserMessage": "İşleminiz başarıyla gerçekleştirildi."
  }

Ürün veya hizmet arayabilirsiniz.