Odeslání POST požadavku na Platební bránu (Česká spořitelna)

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

Dobrý den,
potřeboval bych poradit, jak bych mohl poslat POST požadavek v Presenteru jako formulář na platební bránu, bez toho, abych formulář měl vypsaný v šabloně. Je to možné ? Děkuji.

CZechBoY
Člen | 3608
+
0
-

Třeba Kdyby\Curl.

one-two
Člen | 80
+
+2
-

[ABANDONED] use guzzlehttp/guzzle instead :)

Zuben45
Člen | 268
+
0
-

Opravdu Guzzle ? Není ani v addonech a Curl co jsem koukal vypadá celkem snadně na použití, navíc nevím jaký z těch guzzle bych měl použít, na githubu jich tam je víc :)

uocriota
Člen | 8
+
0
-

Opradu Guzzle. To že není v addonech nic neznamená. Huzzle můžeš použít kdekoliv, kdykoliv v php. Nijak nepotřebuje Nette, proto není v addonech.

Oproti Guzzle Curl snadný není.

Sput composer require guzzle/guzzle:~3.9. Stáhne ti poslední stable verzi.

jiri.pudil
Nette Blogger | 1032
+
0
-

Jestli chceš poslední verzi, tak raději guzzlehttp/guzzle:~6.1.

Zuben45
Člen | 268
+
0
-

jiri.pudil napsal(a):

Jestli chceš poslední verzi, tak raději guzzlehttp/guzzle:~6.1.

nevím proč, ale 6.1 mi hází chybu.

EDIT: již funguje, bylo potřeba přes jiný příkaz:

composer.phar require guzzlehttp/guzzle

EDIT2:
Takže pošlu u guzzlehttp POST přes

use GuzzleHttp\Pool;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;

$client = new Client();

$response = $client->request('POST', 'http://httpbin.org/post', [
    'form_params' => [
        'field_name' => 'abc',
        'other_field' => '123',
        'nested_field' => [
            'nested' => 'hello'
        ]
    ]
]);

jestli se nepletu že ?

v Curl jsem posílal takto:

	    $request = new \Kdyby\Curl\Request('https://3dsecure.csas.cz/transaction');

	    try{
		$response =  $request->post(array(
		    'merchantid' => XXX
		    'amount' => $cena+$cena*0.21,
		    'currency' => 203,
		    'brand' => $values['typkarty'],
		    'transactiontype' => 'sale',
		    'merchantref' => $params['orderId'],
		    'merchantdesc' => $kartaPopis,
		    'language' => "CZ",
		    'emailcustomer' => $this->kosik->getInformace()['faktura_email'],
		    'merchantvar1' => $this->dbStrFormat($this->kosik->getInformace()['faktura_email']),
		    'merchantvar2' => $cena+$cena*0.21*100,
		    'merchantvar3' => '01',
		    'var1' => $kartaPopis,
		    'var2' => $this->dbStrFormat($this->kosik->getInformace()['doprava']),
		    'var3' => '',
		    'var4' => '',
		    'var5' => '',
		    'var6' => '',
		    'var7' => $kartaPlatbaVar7,
		    'var8' => $kartaPlatbaVar8,
		    'var9' => '',
		));
		$this->flashMessage($response->getResponse());

	    } catch (\Kdyby\Curl\CurlException $e) {
		$this->flashMessage($e->getMessage());
	    }

Editoval Zuben45 (11. 1. 2016 13:47)

Zuben45
Člen | 268
+
0
-

Tak odesílání bych asi měl (čekám na nastavení SSL certifikátu), požadavky od banky (také POST) bych měl vyzvednout takhle jestli se nepletu:

public function actionValidation()
	$httpRequest = $this->getHttpRequest();
	$data = $httpRequest->getPost();
	...
}
Zuben45
Člen | 268
+
0
-

Ten guzzle mi posílá

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Přičemž curl mi poslal nazpět informaci od banky ohledně certifikátu.

petomjr
Člen | 6
+
0
-

Zuben45 napsal(a):

Ten guzzle mi posílá

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Přičemž curl mi poslal nazpět informaci od banky ohledně certifikátu.

Zdravím,

mám ten samý problém.

Už se ti podařilo přijít na to, kde byla chyba?

Přesněji laděnka píše následující: cURL error 60: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (see http://curl.haxx.se/…-errors.html)

Editoval petomjr (25. 4. 2016 19:43)