Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3D Secure Ödeme Son Aşamada Hata Alıyorum #184

Closed
3 tasks done
mehmetkalayci opened this issue Feb 24, 2024 · 5 comments
Closed
3 tasks done

3D Secure Ödeme Son Aşamada Hata Alıyorum #184

mehmetkalayci opened this issue Feb 24, 2024 · 5 comments

Comments

@mehmetkalayci
Copy link

mehmetkalayci commented Feb 24, 2024

Information Description
Kütüphane versiyonu "mews/pos": "^0.16.1"
Gateway ismi \Mews\Pos\Gateways\AbstractGateway::MODEL_3D_SECURE
Banka ismi vakifbank

Sorunuz

Vakıfbank 3D secure ödeme yapmaya çalışıyorum.
Kart bilgilerini gönderiyorum. 3d ödeme ekranı geliyor, sms geliyor, işleme devam edince en son adımda; şu hatayı alıyorum.

hata

Göndermeden önce kontroller

  • Bu konuda zaten bir hata bildirimi olmadığından emin olun. Bakınız: hata bildirimleri
  • Dökümantasyonu okudum, araştırdım ve konuyla ilgili bilgileri bulamadım. dökümantasyon
  • İlgili örnek kodları kontrol ettim ve konuyla ilgili bilgileri bulamadım. örnek kodlar
@nuryagdym
Copy link
Collaborator

Merhabalar bu hata hakkinda bir bilgim yoktur, lutfen sorunu bankayla paylasiniz.

Sorununu sebebini ve cozumunu ogrendiginizde paylasirsaniz sevinirim.

@mehmetkalayci
Copy link
Author

Merhaba.
order değişkenindeki success_url ve fail_url değerlerini aşağıdaki gibi düzenledim ve sorun çözüldü.
Bu değerlerin yerinde eskiden bankaya ait olacağını düşündüğüm bir url vardı.

$order = [
	'id' => '123456',
	'amount' => 1.00,

	'success_url' => 'http://localhost/tr/odeme-onay',
	'fail_url' => 'http://localhost/tr/odeme-fail',

	'rand' => md5(uniqid(time())), 
];

Şimdi success_url sayfasında aşağıdaki değerleri alabiliyorum.

array(18) { 
	["MerchantId"]=> string(15) "" 
	["Pan"]=> string(16) "" 
	["Expiry"]=> string(4) "" 
	["PurchAmount"]=> string(2) "" 
	["PurchCurrency"]=> string(3) "" 
	["VerifyEnrollmentRequestId"]=> string(32) "" 
	["Xid"]=> string(20) "" 
	["SessionInfo"]=> string(0) "" 
	["Status"]=> string(1) "Y" 
	["Cavv"]=> string(28) "" 
	["Eci"]=> string(2) "02" 
	["ExpSign"]=> string(0) "" 
	["InstallmentCount"]=> string(0) "" 
	["SubMerchantNo"]=> string(0) "" 
	["SubMerchantName"]=> string(0) "" 
	["SubMerchantNumber"]=> string(0) "" 
	["ErrorCode"]=> string(0) "" 
	["ErrorMessage"]=> string(0) "" 
}

Bu değerler ile asıl ödeme işlemini nasıl yapacağım peki?

@nuryagdym
Copy link
Collaborator

CommonPayment Gateway icin \Mews\Pos\Gateways\AbstractGateway::MODEL_3D_PAY kullanmaniz gerekiyor. 3D_SECURE destegi yoktur.

MODEL_3D_PAY kullaninca kutuphane gereken islemleri yapiyor:

/**
* @inheritDoc
*/
public function make3DPayPayment(Request $request): self
{
$resultCode = $request->query->get('Rc');
if (null !== $resultCode && $this->responseDataMapper::PROCEDURE_SUCCESS_CODE !== $resultCode) {
$this->logger->error('received error response from the bank', $request->query->all());
$this->response = $this->responseDataMapper->map3DPayResponseData($request->query->all());
return $this;
}
/** @var array{TransactionId: string, PaymentToken: string} $queryParams */
$queryParams = $request->query->all();
$statusRequestData = $this->requestDataMapper->create3DPaymentStatusRequestData($this->account, $queryParams);
/**
* sending request to make sure that payment was successful
* @var array{ErrorCode: string}|array{
* Rc: string,
* AuthCode: string,
* TransactionId: string,
* PaymentToken: string,
* MaskedPan: string}|array{
* Rc: string,
* Message: string,
* TransactionId: string,
* PaymentToken: string} $bankResponse */
$bankResponse = $this->send($statusRequestData, $this->getQueryAPIUrl());
$this->response = $this->responseDataMapper->map3DPayResponseData($bankResponse);
$this->logger->log(LogLevel::DEBUG, 'finished 3D payment', ['mapped_response' => $this->response]);
return $this;
}

sizin ayrica yapmaniz gereken bir islem olmamasi gerekiyor.

@mettleshade
Copy link

@mehmetkalayci Mehmet bey elinizdeki dökümanları ve test hesap, test kartını paylaşabilirmisiniz sorun olmazsa

@mehmetkalayci
Copy link
Author

@nuryagdym Yardımınız için teşekkür ederim. Sorun çözüldü artık ödeme işlemini sorunsuz yapabiliyorum.
@mettleshade Vakıfbank 3d secure ile ödeme işlemi yapıyordum. Test moduna aldığımda tam hatırlamıyorum ama işletme bulunamadı gibi bir hata aldım. Bu yüzden test yerine gerçek ortamda çalıştım :) ve kendi kart bilgilerimi verdim.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants