Search code examples
phppaypallaravel-5omnipay

Authorization Failed [Omnipay and Paypal]


Authorization Failed

Here is my code:

$gateway = Omnipay::create('PayPal_Express');

        // Initialise the gateway
        $gateway->initialize(array(
            'clientId' => 'AZzCeImpURKHH0LIFSBTrEWGY-NKLCnUUQdHT049pRLvwBXg9BnlpbnsiGLPFQH43DU4eL-Qi96nrZU6',
            'secret' => 'EFP_mny9dfaaAfW1oyNM8R05weA5eIkU51KUSAdbvcoh3v4bo7txRBm-uzDZ2nOlZ0KmqS-JalgujFok',
            'testMode' => true, // Or false when you are ready for live transactions
        ));

        // Do an authorisation transaction on the gateway
        $transaction = $gateway->authorize(array(
            'returnUrl' => 'http://client.com',
            'cancelUrl' => 'http://localhost:8000/cancel',
            'amount' => '10.00',
            'currency' => 'AUD',
            'description' => 'This is a test authorize transaction.',
                // 'card'          => $card,
        ));

        $response = $transaction->send();
        if ($response->isSuccessful()) {
            // Find the authorization ID
            $authResponse = $response->getTransactionReference();
            echo "Authorize transaction was successful!\n" . $authResponse;
        } else {
            echo "Failed to auth transaction";
            dd($response);
        }

        // Once the transaction has been approved, we need to complete it.
        $transaction = $gateway->completePurchase(array(
            'payerId' => $request->PayerID,
            'transactionReference' => $authResponse
        ));

        $finalResponse = $transaction->send();

        dd($finalResponse);

        if ($finalResponse->getData()) {
            echo "Transaction was successful!\n";
            // Find the authorization ID
            $results = $finalResponse->getTransactionReference();
            dd($results);
        } else {
            dd($finalResponse->getData());
        }

I am trying to set up paypal sendbox with my laravel app. This code is in get method and when I call it I get:

Failed to auth transaction
ExpressAuthorizeResponse {#354 ▼
  #liveCheckoutEndpoint: "https://www.paypal.com/cgi-bin/webscr"
  #testCheckoutEndpoint: "https://www.sandbox.paypal.com/cgi-bin/webscr"
  #request: ExpressAuthorizeRequest {#349 ▶}
  #data: array:9 [▼
    "TIMESTAMP" => "2016-02-12T15:06:21Z"
    "CORRELATIONID" => "68efe51d8aca6"
    "ACK" => "Failure"
    "VERSION" => "119.0"
    "BUILD" => "18308778"
    "L_ERRORCODE0" => "10002"
    "L_SHORTMESSAGE0" => "Authentication/Authorization Failed"
    "L_LONGMESSAGE0" => "You do not have permissions to make this API call"
    "L_SEVERITYCODE0" => "Error"
  ]
}

Anyone know what is problem? Thanks


Solution

  • The error code being returned is 10002: "L_ERRORCODE0" => "10002"

    The PayPal API Error and Warning Codes document states:

    This error can be caused by an incorrect API username, an incorrect API password, or an invalid API signature. Make sure that all three of these values are correct. For your security, PayPal does not report exactly which of these three values might be in error.

    The API username and/or password is wrong. Reset those and try again.