Problém s nasazením addonu MetisFW/PayPal

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Fyasko
Člen | 106
+
0
-

Ahoj, obracím se na vás s problémem, který zkrátka neumím vyřešit(Ani po přeložení chybové hlášky :D ).
Potřebuji zprovoznit platby přes PayPal s nějakým feedbackem na mou stránku. Jde o aktivaci VIP služby. Člověk přejde na platbu a do db se zapíše random kód. Po autorizaci platby bude přesměrován zpět s tím, že stránka odešle e-mail s dříve vygenerovaným kódem a instrukcemi. Byla mi dána rada abych využil addon MetisFW/PayPal s tím že na jednotlivé eventy je připraven. Dělám vše dle postupu z dokumentace, ale neuspěšně. K problému,,

HomepagePresenter

<?php
namespace App\Presenters;

use Nette;
use App\Model;
use \MetisFW\PayPal\UI\PaymentControl;
use \MetisFW\PayPal\Payment\SimplePaymentOperation;
use \PayPal\Api\Payment;


class HomepagePresenter extends BasePresenter
{

	public function createComponentPayPalPaymentButton(SimplePaymentOperationFactory $factory) {
	    $operation = $factory->create('Coffee', 5);
	    $control = new PaymentControl($operation);

	    //set different template if u want to use own
	    $control->setTemplateFilePath(__DIR__ . './myPayPalButton.latte');

	    //called before redirect to paypal after first api call, which create payment
	    $control->onCheckout[] = function(PaymentControl $control, Payment $created) {
	      //something
	    };

	    //called after successfully completed payment proccess
	    $control->onSuccess[] = function(PaymentControl $control, Payment $paid) {
	      //something
	    };

	    //called when user cancelled payment process
	    $control->onCancel[] = function(PaymentControl $control) {
	      //something
	    };

	    return $control;
	}
	...
?>

config.neon

<?php
extensions:
	payPal: MetisFW\PayPal\DI\PayPalExtension

payPal:
  	clientId: AekM3RF76WJmj8jhL4Yr3axgk7Xin2jkGNkNQUJ1nIZQDy_Vte8B6hFzWP68mSWSAt7FVfaS_IqRIgkw
  	secret: EM8M1-kyL33cwkhnFpEGlo_RqA5fvkjfmF3hgmKgL0wOT9P6zp80oMxgkFw6lKHqt_n5YvEwZa3ztt3T
  	currency: CZK
  	sdkConfig:
    	mode: sandbox
    	log.Enabled: true
    	log.FileName: '%tempDir%/PayPal.log'
    	log.LogLevel: DEBUG
    	validation.level: log
    	cache.enabled: true
    	# 'http.CURLOPT_CONNECTTIMEOUT' => 30
    	# 'http.headers.PayPal-Partner-Attribution-Id' => '123123123'/
?>

do bootstrapu jsem přidával

<?php
require __DIR__  . '/PayPal-PHP-SDK/autoload.php';
?>

zde přidávám odkaz na error

Budu vděčný za jakoukoliv radu. Předem Všem děkuji :)

David Matějka
Moderator | 6445
+
+1
-

Ten priklad v doc predpoklada uziti autowired component factories, pokud je nepouzivas, injectni si tu factory normalne (konstruktor, inject anotace..)

Fyasko
Člen | 106
+
0
-

Omlouvám se že reaguji tak pozdě, ale nebyl čas. Každopádně ti mnohokrát děkuji za navedení. Samozřejmě bez problémů funguje takže ještě jednou díky :)