Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Paypal adaptive payment php

I have this problem. I've follow this tutorial -> http://www.youtube.com/watch?v=rzRR1i-F_VA

and after setting everything, I have some problem with getting through the authentification process. And After some research on authentification, I've tested this -> https://developer.paypal.com/webapps/developer/docs/classic/lifecycle/ug_sandbox/

At some point in the process (Making test requests), I've tested it in a bash console, and my userid, password and signature worked. So I figure that the problem was in the code I was using.

So here's the code:

<?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");
}
}

And here's the call:

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

Quite simple, but something is not working. And I'm not really familiar with Curl so I thought you guys could help me

P.S: I'm in sandbox mode

Thanks

Carl

like image 751
Carl Boisvert Avatar asked Oct 28 '13 21:10

Carl Boisvert


People also ask

What is Adaptive payment PayPal?

PayPal Adaptive Payments handles payments between a sender of a payment and one or more receivers of the payment. It's possible to split the order total with secondary receivers, so you can pay commissions or partners. PayPal is not accepting new signups and activations for Adaptive Payments.

What is Adaptive payment?

Adaptive payments are payments made between one sender and multiple receivers–for example, let's say you need a cell phone carrier, cable company, and internet service provider to fulfill your communication needs.


1 Answers

change CURLOPT_HEADER to CURLOPT_HTTPHEADER

like image 191
Ciro Avatar answered Oct 01 '22 11:10

Ciro