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

Ön Provizyon Kapama Aşamasında İlk Tutardan Farklı Tutar Bilgisi Gönderme #171

Closed
hknckr opened this issue Dec 18, 2023 · 5 comments · Fixed by #215
Closed

Ön Provizyon Kapama Aşamasında İlk Tutardan Farklı Tutar Bilgisi Gönderme #171

hknckr opened this issue Dec 18, 2023 · 5 comments · Fixed by #215
Labels

Comments

@hknckr
Copy link

hknckr commented Dec 18, 2023

Merhaba,

Kütüphane çok kullanışlı emeği geçen herkese çok teşekkürler

İşbankası için EstPosAccount oluşturup TX_PRE_PAY ile ön provizyon yaptığımız bir siparişi %15 (bankaya göre değişebiliyor sanırım bu deger) sınırlar içerisinde kalarak ilk provizyon edilmiş tutara göre üst ya da alt tutar ile kapatmak istiyoruz ancak
TX_POST_PAY isteği ile gönderdiğimiz değer hep ilk açtıgımız tutar ile aynı oluyor.

..."num_code":"0","first_amount":173.95,"capture_amount":173.95,"status":"approved","error_code":null,"status_detail":"approved","capture":true,"all":{...

Kodu incelediğimizde post auth request oluşturulurken order içerisinde sadece id değişkeni gönderiliyor.

public function createNonSecurePostAuthPaymentRequestData(AbstractPosAccount $account, $order, ?AbstractCreditCard $card = null): array
{
return $this->getRequestAccountData($account) + [
'Type' => $this->mapTxType(AbstractGateway::TX_POST_PAY),
'OrderId' => (string) $order->id,
];
}

Bu durumda nasıl bir yol izleyebiliriz?

@hknckr
Copy link
Author

hknckr commented Dec 18, 2023

Aslında sanırım bu yukarıdaki fonksiyona Total değişkeni ekleyince oluyor, elle
'Total' => (string) 128.10 degeri ekledigimde çalıştı.

$order içerisinde amount bilgisi yok sanırım, createNonSecurePostAuthPaymentRequestData içine dolu gönderebilmek için

EstPos.php içierisndeki fonksiyona amount bilgisi ekleyince parametrik oldu ve çalıştı.

protected function preparePostPaymentOrder(array $order)
{
return (object) [
'id' => $order['id'],
'amount' => $order['amount'],
];
}

Ancak üst tutar girmemize izin vermiyor
message":"Net miktardan fazla bir miktarla Post Auth yapilamaz hatası alıyoruz.

Prekende sektorunde siparişin fazla olma durumu da olabiliyor çalıştığımız müşterilerimizde. Sanırım bu durumu banka ile gorusmemiz gerekecek.

Bu konuda bilgisi olan var mı acaba ?

@nuryagdym
Copy link
Collaborator

Merhabalar, ilk defa boyle bir sey duyuyorum.
Bankalar izin veriyorsa kodda guncelleme yapabiliriz.
Banka dokumantasyonlara bakilmasi gerekiyor, bazi bankalar miktar parametresini PostAuth islemi icin hic kabul etmiyor olabilir.

@hknckr
Copy link
Author

hknckr commented Dec 19, 2023

Bizden önce çalışan firma bu şekilde çalışabiliyor, yani ön provizyon açıp sonrasında bu provizyon degerinin belirlenen limitler kadar üstünde ve altında ön provizyon kapatabiliyor. (Trendyol Go da böyle çalışıyor, %15 üst ya da alt tutar ile kapatabiliyor ön provizyon tutarını )

Ben Ön provizyonu kapatırken MODEL_3D_SECURE ile hash mismatch hatası aldıgım için MODEL_NON_SECURE ile gönderiyorum isteği. Acaba sorun bu olabilir mi?

TX_POST_PAY için MODEL_3D_SECURE kullanabiliyor muyuz bundan emin olamadım ?

@nuryagdym
Copy link
Collaborator

nuryagdym commented Dec 19, 2023

TX_POST_PAY pay odemede hatirladigim kadariyla tum bankalar MODEL_NON_SECURE istiyor.

bu da TX_PRE_PAY icin bir MODEL_3D_SECURE olan account ve TX_POST_PAY icin MODEL_NON_SECURE olan account gerekiyor anlamina geliyor.

Yeni versiyon uzerinde calisiyorum, henuz isi var, bu durumu da ele aldim, 2 account'a gerek kalmayacak

@hknckr
Copy link
Author

hknckr commented Jan 16, 2024

Bu arada ihtiyacı olanlar için paylaşmak istedim,
Asseco tarafında şu parametreler ile pos kapama yaparlar ise ve banka ile anlaşma yapılmış ise preauth degerinin %15'ine kadar fazla postAuth işlemi yapılabiliyor.

<?xml version="1.0" encoding="UTF-8"?>
<CC5Request>
<Name>kullanıcı adı</Name>
<Password></Password>
<ClientId>client_id</ClientId>
<OrderId>ORDER</OrderId>
<GroupId></GroupId>
<Mode>P</Mode>
<Type>PostAuth</Type>
<Total>115</Total>
<Currency>949</Currency>
<Extra>
<PREAMT>100</PREAMT>
</Extra>
</CC5Request>

PREAMT degerine ön otorizasyon tutarı yazılmalı.

@hknckr hknckr closed this as completed Jan 16, 2024
nuryagdym added a commit that referenced this issue May 22, 2024
…sive-amount-on-post-auth-tx

issue #171 EstPos added support for excessive amount for post auth tx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants