PayPal - problem z integracją/połączniem

0

Hej, dalej integruję konto PayPal z swoją aplikacją. Używam paczki do lara https://github.com/srmklive/laravel-paypal w najnowszej wersji. Mam podstawowy problem z połączeniem. Podczas próby otrzymuję błąd

{"name":"AUTHENTICATION_FAILURE","message":"Authentication failed due to invalid authentication credentials or a missing Authorization header.

nie rozumiem o co chodzi poniewać dodałem prawidłowe CLIENT_ID i CLIENT_SECRET.

Za wszelkie pomysły dzięki :)

0

no ale co nam po twoim bledzie ? pokaz kod ktory wyknujesz do autoryzacji

0

nie no po prostu myślałem że to znany problem :/
Tutaj kod

$paypal = new PayPalClient();
        $paypal->setApiCredentials(config('paypal'));
        $paypal->setCurrency('PLN');

gdzie PayPalClient to

use Srmklive\PayPal\Services\PayPal as PayPalClient;

natomiast konfiguracja jest w config jako plik paypal i zawiera taką tablicę

<?php
/**
 * PayPal Setting & API Credentials
 * Created by Raza Mehdi <[email protected]>.
 */

return [
    'mode'    => env('PAYPAL_MODE', 'sandbox'), // Can only be 'sandbox' Or 'live'. If empty or invalid, 'live' will be used.
    'sandbox' => [
        'client_id'         => env('PAYPAL_SANDBOX_CLIENT_ID', ''),
        'client_secret'     => env('PAYPAL_SANDBOX_CLIENT_SECRET', ''),
        'app_id'            => 'APP-80W284485P519543T',
    ],
    'live' => [
        'client_id'         => env('PAYPAL_LIVE_CLIENT_ID', ''),
        'client_secret'     => env('PAYPAL_LIVE_CLIENT_SECRET', ''),
        'app_id'            => '',
    ],

    'payment_action' => env('PAYPAL_PAYMENT_ACTION', 'Sale'), // Can only be 'Sale', 'Authorization' or 'Order'
    'currency'       => env('PAYPAL_CURRENCY', 'USD'),
    'notify_url'     => env('PAYPAL_NOTIFY_URL', ''), // Change this accordingly for your application.
    'locale'         => env('PAYPAL_LOCALE', 'en_US'), // force gateway language  i.e. it_IT, es_ES, en_US ... (for express checkout only)
    'validate_ssl'   => env('PAYPAL_VALIDATE_SSL', false), // Validate SSL when creating api client.
];

0

A coś wstawiasz do danych autoryzacyjnych? Masz je dodane do env?

0

tak, dane mam dodane do env tzn

PAYPAL_SANDBOX_CLIENT_ID
PAYPAL_SANDBOX_CLIENT_SECRET

oczywiście później config:cache itd
sprawdzałem też
dd(config('payment'))
dane są prawidłowe.

Same dane generuje w panelu paypal https://developer.paypal.com/developer/applications tworząc nową aplikację.

PAYPAL_MODE - w env ustawione na sandbox
0

A gdzie masz ustawianie access tokenu?

0

To znaczy? Bo nie wiem gdzie powinno być ustawione i czy access token mam wygenerować?

1

Masz przecież w readme z tego co widzę nawet...

0

Dzięki, nie zauważyłem tego

jeszcze jeden problem, po utworzeniu zamówienia zwraca tablicę linków. Przekierowuję użytkownika na odpowiedni link i wyświetla się strona płatności. Po dokonaniu płatności wyświetla komunikat przekierowuję .... i tak dalej cały czas strona formularza

0

A zobacz w konsoli, jakie requesty idą.

I jesteś pewny, że dobre linki masz podane? Żadnych pętli przekierowań, czy coś?

0

W konsoli sporo tych requestów leci, w sumie nic ich nie wyróżnia.
Dostaję taką tablicę linków

array:4 [▼
  0 => array:3 [▼
    "href" => "https://api.sandbox.paypal.com/v2/checkout/orders/2B4876....P76778448"
    "rel" => "self"
    "method" => "GET"
  ]
  1 => array:3 [▼
    "href" => "https://www.sandbox.paypal.com/checkoutnow?token=2B487600....778448"
    "rel" => "approve"
    "method" => "GET"
  ]
  2 => array:3 [▼
    "href" => "https://api.sandbox.paypal.com/v2/checkout/orders/2B487600....78448"
    "rel" => "update"
    "method" => "PATCH"
  ]
  3 => array:3 [▼
    "href" => "https://api.sandbox.paypal.com/v2/checkout/orders/2B487600P7...448/capture"
    "rel" => "capture"
    "method" => "POST"
  ]
]

przekierowuję na link gdzie rel to approve

0

dodając

$pay['application_context'] = [
            'return_url' => '',
        ];

dodając return_url problem się rozwiązuje. Jest to przekierowanie GET.
Tylko jeszcze jedna rzecz, przekierowuję na link z approve natomiast jeśli później chcę sprawdzić szczegóły zamówienia i zaktualizować status u siebie mam info

array:2 [
  "type" => "error"
  "message" => "{} {"name":"UNPROCESSABLE_ENTITY","details":[{"issue":"ORDER_NOT_APPROVED","description":"Payer has not yet approved the Order for payment. Please redirect the payer to the 'rel':'approve' url returned as part of the HATEOAS links within the Create Order call or provide a valid payment_source in the request."}],"message":"The requested action could not be performed, semantically incorrect, or failed business validation.","debug_id":"82b03f36e7a47","links":[{"href":"https://developer.paypal.com/docs/api/orders/v2/#error-ORDER_NOT_APPROVED","rel":"information_link","method":"GET"}]}"
]

0

Zadałeś jedno pytanie w wątku i zostało rozwiązane, teraz nie wiemy o co ci chodzi musisz napisać kolejny wątek z pytaniem konkretnym bo teraz napisales

Tylko jeszcze jedna rzecz, przekierowuję na link z approve natomiast jeśli później chcę sprawdzić szczegóły zamówienia i zaktualizować status u siebie mam info

no i co z tego ze masz info, no masz info no i co ? no to dobrze ze masz info cieszy nas to

1

Zainteresuj się tutorialami na https://laracasts.com/ odnośnie PayPal.

1 użytkowników online, w tym zalogowanych: 0, gości: 1