forked from bsevgin/garantipos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.php
66 lines (57 loc) · 3.09 KB
/
example.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
/**
* Created by PhpStorm.
* User: bsevgin
* Date: 15.12.2017
* Time: 14:50
*/
session_start();
if (!isset($_SESSION['orderNumber']) || !empty($_SESSION['orderNumber'])) {
$_SESSION['orderNumber'] = uniqid();
}
// Pos tanımları, sipariş bilgileri ve ödeme bilgileri burada tanımlanıyor
$params = array(
// Pos tanımları (Pos panelinde tanımlanıp buraya girilecek)
'mode' => "TEST", // Pos modu, test için: "TEST", production için: "PROD"
'merchantID' => "XXXXX", // Merchant numarası
'terminalID' => "XXXXX", // Terminal numarası
'provUserID' => "PROVAUT", // Provision kullanıcı adı
'provUserPassword' => "XXXXX", // Provision kullanıcı parolası
'garantiPayProvUserID' => "PROVOOS", // GarantiPay için provision kullanıcı adı
'garantiPayProvUserPassword' => "XXXXX", // GarantiPay için provision kullanıcı parolası
'storeKey' => "XXXXX", // 24byte hex 3D secure anahtarı
'successUrl' => "https://localhost/garantipos/example.php?action=success", // Başarılı ödeme sonrası dönülecek adres
'errorUrl' => "https://localhost/garantipos/example.php?action=error", // Hatalı ödeme sonrası dönülecek adres
'companyName' => "GarantiPos PHP", // Firma adı
'paymentType' => "creditcard", // Ödeme tipi - kredi kartı için: "creditcard", GarantiPay için: "garantipay"
// Müşteri tanımları
'orderNo' => $_SESSION['orderNumber'], // Sipariş numarası
'amount' => 120, // Çekilecek tutar (ondalıklı olarak değil tam sayı olarak gönderilmeli, örn. 1.20tl için 120 gönderilmeli)
'installmentCount' => "", // Tek çekim olacaksa boş bırakılmalıdır
'currencyCode' => 949, // Döviz cinsi kodu(varsayılan:949): TRY=949, USD=840, EUR=978, GBP=826, JPY=392
'customerIP' => $_SERVER['REMOTE_ADDR'], // Müşteri IP adresi
'customerEmail' => "[email protected]", // Müşteri e-mail adresi
// Kart bilgisi tanımları (GarantiPay ile ödemede bu alanların doldurulması zorunlu değildir)
'cardName' => "XXX XXX", // Kart üzerindeki ad soyad
'cardNumber' => "XXXXXXXXXXXXXXXX", // Kart numarası (16 haneli boşluksuz)
'cardExpiredMonth' => "XX", // Kart geçerlilik tarihi ay
'cardExpiredYear' => "XX", // Kart geçerlilik tarihi yıl (yılın son 2 hanesi)
'cardCvv' => "XXX", // Kartın arka yüzündeki son 3 numara(CVV kodu)
);
// GarantiPos sınıfı tanımlanıyor
require_once("GarantiPos.php");
$garantipos = new GarantiPos();
$garantipos->debugMode = false;
$params['paymentType'] = isset($_POST['paymenttype']) ? $_POST['paymenttype'] : $params['paymentType'];
$garantipos->setParams($params);
$action = isset($_GET['action']) ? $_GET['action'] : false;
if ($action) {
$result = $garantipos->callback($action);
if ($result['success'] == 'success') {
unset($_SESSION['orderNumber']); // Sipariş başarıyla tamamlandığı için session siliniyor
}
var_dump($result);
} else {
$garantipos->debugUrlUse = false; // Parametre değerlerinin check edildiği adrese gönderilmesi
$garantipos->pay(); // 3D doğrulama için bankaya yönlendiriliyor
}