Malý wrapper pro Gopay API
- Honza Kuchař
- Člen | 1662
…a je to tak zámérně. Netřeba se však ničeho obávat, je to pár zavolání API z Markette/GoPay
- Stejk
- Člen | 13
Felix napsal(a):
Stejk napsal(a):
Honza Kuchař napsal(a):
…a je to tak zámérně. Netřeba se však ničeho obávat, je to pár zavolání API z Markette/GoPay
A kde předám GoPay notifyURL?? Nikde jsem nic takového nenašel :(
Ta se nastavuje primo na GoPay v administraci/emailem.
Děkuji za odpověď :)
- mates
- Člen | 36
Také jsem teď pracoval na propojení s GoPay. Zaslali mi sadu testů které mám provést. Předpokládám, že obdobný seznam testů obdržel každý. Zajímá mne jak jste se vypořádali se stavem TIMEOUTED.
Jde o tento test:
3) Ověření korektního zpracovávání stavu „TIMEOUTED“:
Proveďte prosím objednávku, zvolte platbu kreditní kartou, místo tlačítka
uhradit prosím zavřete prohlížeč s platební bránou GoPay. Ve vašem
e-shopu by měla být tato platba do 5-ti minut označena jako vypršená
(TIMEOUTED). 5-ti minutový limit je nastaven pouze na testovací instanci
platební brány GoPay. Na provozním prostředí jsou limity pro vypršení
platby stanoveny v řádech hodin.
Třída ReturnedPayment obsahuje metody isFraud, isPaid, isCanceled ale chyběla mi tam metoda isTimeouted, tak jsem si ji dopsal, a to obdobně jako metody předchozí s rozdílem že se ptám na kontantu TIMEOUTED, kterou API disponuje.
public function isTimeouted()
{
$this->getStatus();
return $this->result['sessionState'] === GopayHelper::TIMEOUTED;
}
Nicméně správný výsledek se nedostavil, resp. to vypadá, že GoPay vůbec notifikační skript nevyvolal a to ani po 24hod.
- mates
- Člen | 36
Zatím ostrou ještě nemám, tu jsem právě měl obdržet až po
úspěšném testování.
Mám to ve svém forku takto:
https://github.com/…dPayment.php
Ok, pokud to tedy na ostré funguje, tak to prohlásím za otestované :) Dík za info.
Jo, PR udělej, nebo pokud budeš chtít, zmáčknu to tam já.
- Felix
- Nette Core | 1196
mates napsal(a):
Zatím ostrou ještě nemám, tu jsem právě měl obdržet až po úspěšném testování.
Mám to ve svém forku takto:
https://github.com/…dPayment.phpOk, pokud to tedy na ostré funguje, tak to prohlásím za otestované :) Dík za info.
Jo, PR udělej, nebo pokud budeš chtít, zmáčknu to tam já.
https://github.com/…opay/pull/20
Mam v zaloze jeste jeden pak.
- mates
- Člen | 36
Tak jsem úspěšně prošel testováním a ostrý provoz je OK. Ještě jedna malá věc kterou jsem musel upravit konstanta pro platební kanály v třídě Service.
class Service extends Nette\Object
{
/** @const Platba kartou - Česká spořitelna, a.s. E-commerce 3-D Secure */
const METHOD_CARD_CESKAS = 'cz_cs_c';
//const METHOD_CARD_CESKAS = 'cz_cs_kb';
/** @const Platba kartou - UniCredit Bank - Global payments */
const METHOD_CARD_UNICREDITB = 'eu_gp_u';
/** @const Platba kartou - KB */
const METHOD_CARD_KB = 'eu_gp_kb';
Pro výběr platby kartou je třeba použít tu konstantu odpovídající řetězci ‚eu_gp_kb‘, pro niž jsem následně přidal konstantu s názvem METHOD_CARD_KB.
- Felix
- Nette Core | 1196
@mates Koukal jsem, ze toho tam je vic. Muzes projit http://help.gopay.com/…pro-eur-menu a http://help.gopay.com/…pro-czk-menu a doplnit konstanty? Je mozne, ze to gopay zmenil. Pak posli PR, diky.
- mates
- Člen | 36
@Felix Dodělal jsem kontrolu konstant platebních kanálů a přidal/odebral potřebné. Připraveno zde https://github.com/…/Service.php
- Felix
- Nette Core | 1196
Gopay v2.1.0
Github: https://github.com/Markette/Gopay
Composer: https://packagist.org/…rkette/Gopay
Diff: https://github.com/…0.0...v2.1.0
- Gopay API 2.5
- Nette 2.0 – 2.3
- Oprava bugu
- Drobne upravy API
- Service – aktualizovane konstatny plateb
- Service – pridana volba – Platbu vybere uzivatel (METHOD_USER_SELECT)
- Service – vymazani nepouzivanych method allowChannel, denyChannel, addRawChannel
- Service – uprava addChannel metody
- ReturnedPayment – nove metody isRefunded, isAuthorized
- Pokryti testu 100% (krome oficialniho API forku)
Muzete vesele instalovat a testovat.
composer require markette/gopay:~2.1.0
- Zdenal
- Člen | 21
Ahoj,
snažím se rozchodit Markette\Gopay
ale stále se mi nezobrazují tlačítka pro provedení platby. Používám verzi markette/gopay 2.1.0
Muj kod je:
<?php
protected function createComponentGopayForm()
{
$form = new Form();
$gopay = $this->gopay;
$gopay->bindPaymentButtons($form, array($this->gopaySubmittedForm));
return $form;
}
public function gopaySubmittedForm(Gopay\PaymentButton $button)
{
$channel = $button->getChannel();
}
?>
a v šabloně normálně volám formulář
{control gopayForm}
Nehlásí to žádnou chybu. A když se podívám do html zdroje tak tam je pouze
<form id=„frm-gopayForm“ method=„post“
action=„/data/tiwwo/www/admin/users/activate?lang=cs“ novalidate="">
<div>
<input type=„hidden“ value=„gopayForm-submit“ name=„do“>
</div>
</form>
Pomůže někdo? Děkuji.
Editoval Zdenal (1. 8. 2015 18:46)
- Zdenal
- Člen | 21
Zdenal napsal(a):
Ahoj,
snažím se rozchodit Markette\Gopay
ale stále se mi nezobrazují tlačítka pro provedení platby. Používám verzi markette/gopay 2.1.0
Muj kod je:
<?php protected function createComponentGopayForm() { $form = new Form(); $gopay = $this->gopay; $gopay->bindPaymentButtons($form, array($this->gopaySubmittedForm)); return $form; } public function gopaySubmittedForm(Gopay\PaymentButton $button) { $channel = $button->getChannel(); } ?>
a v šabloně normálně volám formulář
{control gopayForm}Nehlásí to žádnou chybu. A když se podívám do html zdroje tak tam je pouze
<form id=„frm-gopayForm“ method=„post“ action=„/data/tiwwo/www/admin/users/activate?lang=cs“ novalidate="">
<div>
<input type=„hidden“ value=„gopayForm-submit“ name=„do“>
</div>
</form>Pomůže někdo? Děkuji.
Už jsem to vyřešil, přidáním metody addChanel
Ale mám jiný dotaz, upravil někdo plugin pro nové REST API?
- Felix
- Nette Core | 1196
GopayInline – alfa
Aktualne je to ve fazi testovani (na jednom portale), pokud vse dopadne dobre, tak muze vyjit verze 1.0.
Testujte: https://github.com/…/GopayInline
cc @Zdenal
- Felix
- Nette Core | 1196
Bumped v3.0.0-alpha
COMPOSER: https://packagist.org/…rkette/Gopay
DIFF: https://github.com/…v3.0.0-alpha
Novinky
- PHP >= 5.5
- 100%
test coverage
- S jednoduchým
mockováním
GopayApi
- S jednoduchým
- Nové API (není 100% kompatibilní s 2.x)
- Nová struktura
služeb
AbstractService -> AbstractPaymentService -> PaymentService
- Nová struktura
entit
BasePayment-> Payment, RecurrentPayment, PreAuthorizedPayment
- Nový nástroj Binder
- Aby se ze služeb nestávaly god-objekty
- Nový oddělený Config pro přihlašovací údaje
- Nová struktura
služeb
- Nové platby:
- opakované (RecurrentPayment)
- před-autorizované (PreAuthorizedPayment)
Ostatní:
Porovnání verzi 2.1 až 3.0 zde – http://blog.jfx.cz/…y-3-generace
Editoval Felix (14. 10. 2015 15:37)
- Felix
- Nette Core | 1196
@uocriota Presne jak pise @her-ur.
Jinak, uz si to presne nepamatuji. Ale v kodu jsem nasel: https://github.com/…ePayment.php#L77
- Felix
- Nette Core | 1196
@uocriota Uplne jednoduchou ukazku na inline platby mas primo v readme u GopayInline.
https://github.com/…/GopayInline#…
Pripadne z oficialni dokumentace.
PS: Ten jejich oficialni PHP klient vypada dost jako nase Markette. xD
Editoval Felix (31. 3. 2016 18:18)