mewebstudio / pos

Türk bankaları için sanal pos paketi (PHP)
Other
275 stars 104 forks source link

formatAmount(): Argument #1 ($amount) must be of type string, null given #237

Closed nzrylmz closed 1 month ago

nzrylmz commented 2 months ago

Hatanın özeti

Ödeme işleminden sonra cevap aşamasında aşağıdaki hatayı alıyorum.

$config = \App\Helpers\SanalPos::config($pos_key);

$paymentModel = $config['paymentModel'] ?? null;
$transactionType = $config['transactionType'] ?? null;
$posGateway = $config['posGateway'] ?? null;
$order = $session->get('order');
$card  = null;

$posGateway->payment(
    $paymentModel,
    $order, // order içindeki verileri kontrol ettim, ödeme aşamasında girdiğim verilerle uyuşuyor
    $transactionType,
    $card
);

$posGateway->payment kısmında bu hatayı veriyor.

Mews\Pos\DataMapper\ResponseDataMapper\EstPosResponseDataMapper::formatAmount(): Argument #1 ($amount) must be of type string, null given, called in /**proje yolu**/DataMapper/ResponseDataMapper/EstPosResponseDataMapper.php on line 132

Ödeme aşamasında miktarı hem sayı hem string olarak girmeyi denedim. Ama zaten ödeme aşamasında değil, cevap döndüğünde sorun oluyor.

Banka ismi

İş Bankası

Gateway PHP sınıfı

EstV3Pos

İşlem Tipi

MODEL_3D_SECURE ödeme

Kütüphane versiyonu

1.4.1

Checks

nuryagdym commented 2 months ago

Merhaba, mumkunse bu methodun https://github.com/mewebstudio/pos/blob/e9a15fa42a8bece131fa896af37528379221ffa7/src/DataMapper/ResponseDataMapper/EstPosResponseDataMapper.php#L112 en basina bu kodu

echo json_encode($raw3DAuthResponseData);
echo json_encode($rawPaymentResponseData);

ekleyerek odemeyi tekrar deneyip sonucu paylasir misin, hassas verileri gizlemen gerekecek.

nzrylmz commented 2 months ago

$raw3DAuthResponseData içinde sadece 'HASH' ve 'rnd' var
$rawPaymentResponseData ise null geliyor

nuryagdym commented 2 months ago

$raw3DAuthResponseData icinde sadece 'HASH' ve 'rnd' olsaydi o satira gelmeden once hata vermesi gerekiyordu. $raw3DAuthResponseData icerigini gormeden guncelleme yapamam, cunku tek sorun amount olmayabilir. Amount kismi duzelttikten sonra, sonraki satirlarda yine patlayabilir.

nzrylmz commented 2 months ago

Şu an farkettim. Localde sorunsuz çalışıyor, ama sunucuya yüklediğimde cevap sadece 'HASH' ve 'rnd' olarak dönüyor. Banka ile alakalı bir durum sanırım.

nuryagdym commented 2 months ago

farkli ortamlar ise (production/test) farkli cevaplar donebilir. test icin assecoya istek gonderilir, production icin isbankin sunucularina

nuryagdym commented 1 month ago

$raw3DAuthResponseData icerigi saglanmadigindan issue'yi kapatiyorum. Sorun devam ederse tekrar issue acabilirsin.