PayPal - problem z integracją/połączniem

PayPal - problem z integracją/połączniem
M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
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

Kopiuj
{"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 :)

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 449
0

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

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
0

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

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

gdzie PayPalClient to

Kopiuj
use Srmklive\PayPal\Services\PayPal as PayPalClient;

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

Kopiuj
<?php
/**
 * PayPal Setting & API Credentials
 * Created by Raza Mehdi <srmk@outlook.com>.
 */

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.
];

serek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1506
0

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

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
0

tak, dane mam dodane do env tzn

Kopiuj
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ę.

Kopiuj
PAYPAL_MODE - w env ustawione na sandbox
serek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1506
0

A gdzie masz ustawianie access tokenu?

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
0

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

serek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1506
1

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

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
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

serek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1506
0

A zobacz w konsoli, jakie requesty idą.

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

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
0

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

Kopiuj
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

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 362
0

dodając

Kopiuj
$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

Kopiuj
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"}]}"
]

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 449
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

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
1

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.