Php ile Moka Api Sanal Pos

Bir proje için moka sanal pos apisi kullandım.Gereken kodları paylaşıyorum.Oldukça gayet kullanışlı fakat sadece para birimi olarak tl birimi destekliyor.Kredi kartı formumuzu hazırlandıktan sonra

mokanın istediği paremetleri aşağıda belirtiyorum.Mokaya başvurduktan sonra size size test bilgileri veriliyor.


$moka_url = 'https://service.moka.com/PaymentDealer/DoDirectPaymentThreeD'; // moka url, test için testmoka test bilgilerini veriyorlar
	$dealer_code = ''; // bayi kodu
	$username = ''; // kullanıcı adı
	$password = ''; // şifre
	$currency = 'TL';  // para birimi
	$InstallmentNumber = 0; // taksit
	$OtherTrxCode = '111"'
	$SubMerchantName = '';
	$RedirectUrl = 'site.com/odeme/?MyTrxCode='.$OtherTrxCode; // başarılı yada başarısız dönecek sayfamız

#### test bilgiler
$moka_url = "https://service.testmoka.com/PaymentDealer/DoDirectPaymentThreeD";
	$dealer_code = "1934";
	$username = "TestSemih";
	$password = "YHHDY1Q7YDG787EYGYWEG";
	$currency = 'TL';
	$InstallmentNumber = 0;
	$OtherTrxCode = "111";
	$SubMerchantName = "";
	$RedirectUrl = 'sonuc sayfası';
####

$checkkey = hash("sha256",$dealer_code."MK".$username."PD".$password);
	$veri = array('PaymentDealerAuthentication'=>
					array(	
						'DealerCode'=>$dealer_code,
						'Username'=> $username,
						'Password'=>$password,
						'CheckKey'=>$checkkey
					),
					'PaymentDealerRequest'	=>array(
						'CardHolderFullName'=>$cardadsoyad,
						'CardNumber'=>$cardnumber,
						'ExpMonth'=>$ccay,
						'ExpYear'=>'20'.$ccyil,
						'CvcNumber'=>$cvc,
						'Amount'=>$toplamtutar,
						'Currency'=>$currency,
						'InstallmentNumber'=>$InstallmentNumber,
						'ClientIP'=>$ip,
						'RedirectUrl'=>$RedirectUrl,
						'OtherTrxCode'=>$OtherTrxCode,
						'SubMerchantName'=>$SubMerchantName)
				);


			$veri = json_encode($veri);
			$ch = curl_init($moka_url); 
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
			curl_setopt($ch, CURLOPT_POST, 1); 
			curl_setopt($ch, CURLOPT_POSTFIELDS, $veri);
			curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
			curl_setopt($ch, CURLOPT_SSLVERSION, 6);	  // TLS 1.2 baglanti destegi icin
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);    // ssl sayfa baglantilarinda aktif edilmeli
			$result = curl_exec ($ch); 
			curl_close ($ch);
			$result = json_decode($result);

			if($result->ResultCode == 'Success'){
				echo '<div class="alert alert-success">
					<p>KART BILGILERINIZ DOGRULANDI !!!
					<br><br>
						Simdi kart güvenligini dogrulamak için bankanin sayfasina yönlendirileceksiniz. 
					<br>
						Burada kart sahibinin bankada kayitli cep telefonuna gelecek SMS\'i girdikten sonra islemleriniz tamamlanacaktir.
					</p>
					<p>
						<a href="'.$result->Data.'" class="btn btn-primary">Yönlendirme çalismaz ise buraya tiklayin...</a>				
					</p>
				</div>';
				header("Location: ".$result->Data);
				exit;
			}else{
					$_SESSION["hata"] = 'Kart Bilgileri Doğrulanamadı';
					header('location:'.$callbackUrl);
					exit;
			}

daha sonra parametlerini dizi şeklinde moka url post ediyoruz.

Gelen sonuç sayfamızda ise

if($_POST['isSuccessful'] == 'False'){
 // başarısız ise yapılacak işlemler
}elseif($_POST['isSuccessful'] == 'True'){
// durum başarılı ise yapılacak işlemler sorgu, kayıt vs
}

Gerekli bilgileri moka adresinden bulabilirsiniz.

Kaynaklar

Moka

1 Yorum

  1. Merhaba Cihan bey,
    Ben bir güvenlik kamera üreticisi firmada grafiker, bilgi işlemci olarak çalışmaktayım. Asgari düzeyde PHP bilgim mevcut
    + Durum: Firma daha önce dahil olduğu Moka üzerinden bayilerinden ödeme almakta. Patron bu ödeme işleminin bayilerin direk yapabilmesi için bir panel hazırlamamı istedi.
    1. Aşama: Paneli hazırlayıp PositiveSSL satın aldım (TLS1.1 ve 1.2 destekliyor). developer.moka.com üzerinden örnek kodlardan PHP paketi indirdim. Ardından moka ile iletişime geçtim. Apileri verdiler. PHP pakette tüm değişiklikleri yaptım.
    2. Aşama: Bu noktadan sonra 3d secure ile sli geçiyorum ancak maalesef sonuç alamıyorum. Mokadakiler Çekim yaptığım miktar ve kartları kendi ekranlarında görüyorlar ancak çekim yapamıyor. maalesef moka operasyonu aramama rağmen ilgisizlik gösteriyorlar ve kaynaklara yönlendiriyorlar.
    3. AŞAMA: CİHAN BEY BUNUN BİR PÜF NOKTASI OLDUĞUNU DÜŞÜNÜYORUM ama ben bilmiyorum. BU SEBEPLE SİZE DANIŞIYORUM. Bana yardımcı olursanız size minnettar kalacağım.
    Şimdiden teşekkür eder, iyi çalışmalar dilerim

    Yanıt
  2. Cihan bey merhaba, memberpress isimli bir wordpress eklentisi kullanıyorum, üyelik sistemiyle düzenli ödemeler alıyorum.

    Eklentinin built-in stripe ve paypall entegrasyonu var ancak tahmin edersiniz ki türkiyeden bir firmayla yok. Ben moka ile de çalışıyorum ve moka posla entegre etmek istiyorum, memberpress api buna izin veriyor.

    Bu konuda destek almak istiyorum. 0530 6557055

    Yanıt

Yorum Bırak.