Revolut Brana, pomoc pre presmerovanie spat na webhosting z revolutu po uspešnom, alebo neuspešnej platbe
- Richard17
- Člen | 23
Dobrý deň mám jeden problém a už si sním neviem rady týždeň.. Či sa niekto nestretol stým.
/**
* @param int $price Sumá v eurách (napr. 10)
* @param string $reference Tvoja jedinečná referencia
* @param string $package Názov balíčka
* @param int $userId ID užívateľa
* @return array Odpoveď od Revolut API vrátane 'checkout_url'
* @throws \RuntimeException|GuzzleException
*/
private function createPaymentRequest(int $price, string $reference, string $package, int $userId): array
{
$data = [
'amount' => $price * 100, // v centoch
'currency' => 'EUR',
'merchant_order_ext_ref'=> $reference,
'description' => "Kreditový balíček: $package, užívateľ #$userId",
'redirect_url' => 'https://showbet.eu/user/price/success/' . $reference,
];
$client = new Client([
'base_uri' => $this->prodBaseUrl, // sandbox alebo production base URL
'headers' => [
'Authorization' => 'Bearer ' . $this->secretKey,
'Revolut-Api-Version' => '2023-09-01',
'Content-Type' => 'application/json',
],
'timeout' => 10,
]);
try {
$resp = $client->post('orders', ['json' => $data]);
return json_decode($resp->getBody()->getContents(), true);
} catch (RequestExceptionAlias $e) {
throw new \RuntimeException('Revolut API error: ' . $e->getMessage());
}
}
Keď kliknem na tlačítko v šablóne, formulár my zavolá metódu createPaymentRequest, „vyššie uvedená“. Pekne sa my otvori revolut platobná brána, vykonam platbu všetko prebehne v poriadku "aj zápis do databázy.
Jediní problém, ktorý neviem vyriešiť je presmerovanie spať na môj web… aby mi oznámilo či platba bola úspešna alebo neúspešná. Ostanem len na revolut stránke „kde mam len výpis o stave objednávky“ vie mi niekto poradiť ?
Presenter:
public function actionSuccess(string $ref): void
{
$this->flashMessage('✅ ' . $this->translator->translate('payment.success'), self::MSG_SUCCESS);
$this->redirect('Home:default'); // Alebo kam chceš po zobrazení hlášky
}
Router
$router->withModule('User')
->addRoute('[<lang=' . $defaultLanguage . ' ' . $languageCodes . '>/]user/price/success/<ref>[/]', 'Price:success')
->addRoute('[<lang=' . $defaultLanguage . ' ' . $languageCodes . '>/]user/<presenter>/<action>[/<id>]', 'Home:default');
Kebyže už to niekto riešil bol by som rád za pomoc. Ďakujem pekne a keď nič tak mam smolu :-D
Editoval Richard17 (20. 6. 12:55)
- Infanticide0
- Člen | 116
To je na Revolutu, aby zákazníka přesměroval zpátky na web, adresu mu
předáváš v redirect_url parametru.
Koukni do dev konzole, jestli tu adresu na pozadí nenačte třeba přes HEAD a
nedostane špatnej response code a rozhodne se, že redirect neudělá, protože
ta stránka asi nefunguje.
- Richard17
- Člen | 23
Infanticide0 napsal(a):
To je na Revolutu, aby zákazníka přesměroval zpátky na web, adresu mu předáváš v redirect_url parametru.
Koukni do dev konzole, jestli tu adresu na pozadí nenačte třeba přes HEAD a nedostane špatnej response code a rozhodne se, že redirect neudělá, protože ta stránka asi nefunguje.
Ďakujem za odpoveď idem vyskúšať..