tpay-com / tpay-openapi-php

MIT License
7 stars 11 forks source link

Data waznosci linku #69

Closed Kuba-Kajderowicz closed 3 weeks ago

Kuba-Kajderowicz commented 3 months ago

Witam, nie widze w dokumentacji jak ustawic termin waznosci linku przy tworzeniu. Ale jest to dostepne na sandboxie, wiec obstawiam ze mozna to tez zrobic przez API.

Aktualnie mam taki kod: ` // Prepare transaction data $transactionData = [ 'amount' => $amount, // Sample amount 'description' => $description, // Sample description 'hiddenDescription' => 'hidden desc', 'payer' => [ 'name' => $name, 'email' => $email, // Payer's email address (required) // You can include other payer information here if needed ], "callbacks" => [ "payerUrls" => [ "success" => "https://test.tpay.com/payment_success", "error" => "https://test.tpay.com/payment_error." ] ] ];

    // Create transaction
    return $instance->TpayApi->transactions()->createTransaction($transactionData);`
BanczerowskiM commented 3 months ago

Cześć @Kuba-Kajderowicz, pisząc o Sandboxie, pewnie miałeś na myśli Panel Akceptanta a w nim zakładkę "Linki do płatności".

Generator w tej zakładce wykorzystuję integrację z pominięciem API, szczegółowy opis znajduję się w tej dokumentacji: https://docs.tpay.com/#!/Tpay/tpay_no_api. W tej integracji są dostępne dwa dodatkowe parametry expiration_date oraz timehash zezwalające na ograniczenie czasowe transakcji.

W przypadku integracji po API nie ma możliwości ograniczenia czasowego transakcji, wyżej wymienione parametry nie są obsługiwane.

Kuba-Kajderowicz commented 3 months ago

@BanczerowskiM

Czy w takim razie jest mozliwość anulowania lub usuwania wygenerowanej transakcji przez API? I czy w przyszlosci bedzie mozliwosc ustalenia daty waznosci przez API. Bo aktualnie mam caly system napisany w API i teraz musze calosc przerobic na generacje poza uzyciem API.

kwojc commented 3 months ago

@Kuba-Kajderowicz Pracujemy nad publicznie dostępnym mechanizmem anulowania transakcji.

Tymczasowo możesz obsłużyć swój business case przez transakcje dwuetapowe. Wtedy w momencie odbierania powiadomienia o płatności, automatycznie można zadecydować czy płatność przyjmujesz czy odrzucasz. https://support.tpay.com/faq/can-i-decide-if-accept-payment-or-not

Kuba-Kajderowicz commented 3 months ago

W Takim razie czy jest mozliwość generowania linków jednorazowych, czyli jak klient dokona płatności to nie bedzie mogl ponownie otworzyc linku i go zaplacic? Nie widzę tego w dokunentacji (no api oraz api).

Oraz nie jest opisane jak można skrócic URL przez hashowanie tak jak jest to pokazane w panelu akceptanta.

BanczerowskiM commented 3 months ago

@Kuba-Kajderowicz Nie ma możliwości wygenerowania jednorazowych linków do płatności, tak jak wspominaliśmy wcześniej, na ten moment możesz transakcje ograniczyć czasowo lub wykorzystać mechanizm dwuetapowego przyjmowania płatności, dzięki któremu automatycznie możesz zadecydować o przyjęciu lub odrzuceniu płatności.

Hashowy link do płatności jest dostępny jedynie z poziomu Panelu Akceptanta. Dla sprzedawców, którzy koniecznie potrzebują krótkiej formy, zalecamy użycie API. Link do transakcji wygenerowany przez API zawiera w adresie jedynie tytuł transakcji oraz identyfikator UID.

Kuba-Kajderowicz commented 3 months ago

Hashowy link do płatności jest dostępny jedynie z poziomu Panelu Akceptanta. Dla sprzedawców, którzy koniecznie potrzebują krótkiej formy, zalecamy użycie API. Link do transakcji wygenerowany przez API zawiera w adresie jedynie tytuł transakcji oraz identyfikator UID.

Ale to znów problem ze przez API nie mozna wygenerowac linku ktory jest ograniczony czasem wiec hashowanie linku przez API w moim przypadku odpada. Czy jest mozliwośc zrobienia to poza API?

kwojc commented 3 months ago

@Kuba-Kajderowicz Jedynym aktualnym rozwiązaniem, które już prawie masz jest:

  1. Generujesz transakcję przez API (można ją tylko raz ją opłacić, nie musisz się o to martwić)
  2. Gdy płatnik ją opłaci - i możesz wydać towar - odpowiadasz na nasz webhook z powiadomieniem TRUE 2a. Jeżeli jednak już nie masz tego towaru/minął czas ma zapłatę - odpowiadasz FALSE
  3. Problem Solved, happy coding! :)

Żeby włączyć transakcje dwuetapowe, należy się skontaktować z Biurem Obsługi Klienta.

Kuba-Kajderowicz commented 4 weeks ago

Witam, Czy jest jakis specyficzny adres IP ktory mogę dodać do mojej whitelisty do przychodzących webhooków?

kwojc commented 3 weeks ago

@Kuba-Kajderowicz zgodnie z dokumentacją, głównym zabezpieczeniem Webhooków jest weryfikacja podpisu JWS.

Dodam, że pracujemy nad wdrożeniem mTLS, zmiany zostaną zakomunikowane oficjalnymi kanałami.