Open amswiatkowski opened 3 years ago
To samo u mnie... nie mogę się przez to zintegrować ;/
Co znajduje się na liście błędów w panelu admina ("Błędy transakcji"), tam powinna być informacja co poszło nie tak. W sekcji https://github.com/bluepayment-plugin/bm-sdk#przedtransakcja-brak-kontynuacji są opisane 2 pola w których można sprawdzić występowanie błędów przy starcie(confirmation/reason)
@lstosik nie wiem czy coś zrobiliście z moim kontem (bo pisałem z Waszym supportem o tym bugu na mailu i podawałem ID serwisu w którym występuje ten problem) ale nagle redirecturl już działa i poprawnie przenosi do płatności... ale... jak zrobiłem to do czego dałeś link czyli
echo $bluemedia_transactionContinue->getConfirmation(); echo '-' . $bluemedia_transactionContinue->getReason();
Jest znowu zabawnie i wyskakuje error
Fatal error: Uncaught Error: Call to undefined method BlueMedia\Transaction\ValueObject\TransactionContinue::getConfirmation()
@ShinJii89 być może to Ci pomoże... W zależności od tego czy parametry do przedtransakcji są prawidłowe czy nieprawidłowe to zwracany jest inny obiekt! Wg mnie to jest słabe, ale tak działa.
TransactionContinue
TransactionInit
a co za tym idzie, inne metody są dostępne
$result = $client->doTransactionInit([
'gatewayUrl' => $gatewayUrl,
'transaction' => $transaction,
]);
$transactionContinue = $result->getData();
if ($transactionContinue instanceof TransactionContinue) {
// jest dobrze, status PENDING
// redirect na $transactionContinue->getRedirectUrl()
}
if ($transactionContinue instanceof TransactionInit) {
// jest źle, confirmation NOTCONFIRMED
// nie ma linka do przekierowania
}
@lstosik integracja mogla się psuć przez niezaktualizowane realasy - ale wrzuciłam już nowy
@akurzajewska niestety w dalszym ciągu mam:
Fatal error: Uncaught Error: Call to undefined method BlueMedia\Transaction\ValueObject\TransactionInit::getRedirectUrl() in /var/www/html/ajax/abonament.ajax.php:260 Stack trace: #0 {main} thrown in /var/www/html/ajax/abonament.ajax.php on line 260
Kod:
$bluemedia_result = $bluemedia_client->doTransactionInit([ 'gatewayUrl' => 'https://pay-accept.bm.pl', 'transaction' => [ 'orderID' => $bluemedia_control, 'amount' => $bluemedia_price, 'description' => $paytitle, 'gatewayID' => '0', 'currency' => $currency, 'customerEmail' => $userdata['email'], 'customerIP' => $_SERVER['REMOTE_ADDR'], 'returnURL' => $return_page ] ]); $bluemedia_transactionContinue = $bluemedia_result->getData(); $bluemedia_url = $bluemedia_transactionContinue->getRedirectUrl();
@akurzajewska Potwierdzam to co napisał @scardinius - tak się dzieje przez status NOTCONFIRMED - pytanie czemu za każdym razem mam taki status? wina jakiejś konfiguracji w sandboxie czy co?
@ShinJii89 zaloguj się do panelu i sprawdź jaki masz błąd. Ja najczęściej miałem niedozwolony znak w polu description
(menu) Sklepy > (link) nazwa sklepu > (link) Błędy transakcji
lista błędnych przedtransakcji ze szczegółami będzie widoczna po kliknięciu przycisku Filtruj
@scardinius nie widzę czegoś takiego w sandboxie...a po drugie tytuł mam "Testowy tytuł" [bez cudzysłowia] także nie widzę tutaj niedozwolonych znaków :D
@scardinius odnośnie Twojego rozwiązania to mam lepsze:
$transactionContinue = $result->getData();
$status=$transactionContinue->getConfirmation();
if ($status!=='NOTCONFIRMED') {
// redirect na $transactionContinue->getRedirectUrl()
}
@ShinJii89 nie byłbym taki pewny... nie znalazłem metody getConfirmation()
w klasie TransactionContinue
. Zadziałał ten Twój kod?
@scardinius w przypadku "NOTCONFIRMED" działa, a w innym nie wiem bo póki co wszystkie transakcje mam z tym statusem...nie mogę tego przeskoczyć.
@ShinJii89 a spróbuj napisać nowy skrypt bazując na tym z dokumentacji https://developers.bluemedia.pl/online/sdk/php#przedtransakcja-link-do-kontynuacji-platnosci - taki sam kod ale swoje klucze do sklepu
i jeszcze panel, korzystasz rozumiem z tego https://oplacasie-accept.bm.pl/admin/login ? konto na początku nie jest zweryfikowane i to jest taki "sandbox". Ja mam dojście do błędów transakcji, rozejrzyj się jeszcze raz
@scardinius mam identyczny kod ;P Co do panelu - daj screena gdzie to masz, ja mam tylko TRANSAKCJE, co ciekawe nie ma tam żadnej transakcji z dzisiaj ;D
@ShinJii89 tych nieudanych (NOTCONFIRMED) nie widać na liście transakcji, tylko właśnie w błędach.
Górne menu:
a może Twoje konto ma niższe uprawnienia, hmm?
@scardinius o to chodzi, że nie widzę nigdzie menu z błędami ;p a na screenie mi dałeś po prostu sklepy... klikam tam i nic nie mam o błędach albo jestem ślepy ;D
Możliwe, że mam coś nie tak z tym kontem... już ostatnim razem mi developerzy niby coś "naprawili" i zaczęło działać, ale znowu nie działa od tygodnia:) no nic... chyba muszę poczekać na ich reakcję ;)
Minęły prawie 2 lata, a ten błąd dalej nie naprawiony:))) Jeżeli ktoś ma niezgodne znaki w tytule transakcji z patternem, który w bluemedia jest ubogi (nawet polskich znaków nie akceptują, halo, mamy 2023 rok) to wciąż zamiast błąd się catchować i wypluć jakąś ładną wiadomość to jest 500tka z Fatal error: Uncaught Error: Call to undefined method BlueMedia\Transaction\ValueObject\TransactionInit::getRedirectUrl()
Naprawi ktoś to w końcu? @akurzajewska @bmmichal @Karol-BM @marendarskibm
kolejny rok, chyba czas zacząć obchodzić jakieś rocznice w firmie Autopay z tej okazji ;))))
@scardinius @amswiatkowski poradziliscie sobie jakos z tym problemem czy po prostu przestaliscie uzywac ich wtyczki i zintegrowalisce to "natywnie" za pomoca ich apI? :D
Przy wywołaniu poniższego kodu:
Otrzymuję błąd:
Wyłapałem nast. błąd rozpoczęcia transakcji:
Wszystkie dane w tablicy $data są wypełnione, co więcej, na przykładzie z https://github.com/bluepayment-plugin/bm-sdk/blob/master/README.md, również występuje ten sam błąd: