tarjeta sitio pasarela para pagos pago online ipn implementar ejemplo developers developer con boton php curl paypal paypal-adaptive-payments

sitio - Paypal pago adaptable php



paypal para developers (1)

Tengo este problema He seguido este tutorial -> http://www.youtube.com/watch?v=rzRR1i-F_VA

y después de configurar todo, tengo algún problema para superar el proceso de autenticación. Y después de algunas investigaciones sobre autenticación, he probado esto -> https://developer.paypal.com/webapps/developer/docs/classic/lifecycle/ug_sandbox/

En algún punto del proceso (Hacer solicitudes de prueba), lo probé en una consola bash, y mi ID de usuario, contraseña y firma funcionaron. Entonces me imagino que el problema estaba en el código que estaba usando.

Así que aquí está el código:

<?php class PaypalTest extends CComponent{ public $api_user = "**********************"; public $api_pass = "***********"; public $api_sig = "**************************"; public $app_id = "APP-80W284485P519543T"; public $apiUrl = ''https://svcs.sandbox.paypal.com/AdaptivePayments/''; public $paypalUrl="https://www.paypal.com/webscr?cmd=_ap-payment&paykey="; public $headers; public function __construct(){ $this->headers = array( "X-PAYPAL-SECURITY-USERID: ".$this->api_user, "X-PAYPAL-SECURITY-PASSWORD: ".$this->api_pass, "X-PAYPAL-SECURITY-SIGNATURE: ".$this->api_sig, "X-PAYPAL-REQUEST-DATA-FORMAT: JSON", "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON", "X-PAYPAL-APPLICATION-ID: ".$this->app_id, ); } public function getPaymentOptions($paykey){ } public function setPaymentOptions(){ } public function _paypalSend($data,$call){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->apiUrl.$call); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HEADER, $this->headers); $response = json_decode(curl_exec($ch),true); return $response; } public function splitPay(){ // create the pay request $createPacket = array( "actionType" =>"PAY", "currencyCode" => "USD", "receiverList" => array( "receiver" => array( array( "amount"=> "1.00", "email"=>"********@hotmail.com" ), array( "amount"=> "2.00", "email"=>"********@gmail.ca" ), ), ), "returnUrl" => "http://test.local/payments/confirm", "cancelUrl" => "http://test.local/payments/cancel", "requestEnvelope" => array( "errorLanguage" => "en_US", "detailLevel" => "ReturnAll", ), ); $response = $this->_paypalSend($createPacket,"Pay"); } }

Y esta es la llamada:

$payment = new PaypalTest(); $payment->splitPay();

Muy simple, pero algo no funciona. Y no estoy muy familiarizado con Curl, así que pensé que ustedes podrían ayudarme

PD: estoy en modo sandbox

Gracias

Carl


cambiar CURLOPT_HEADER a CURLOPT_HTTPHEADER