Идентификатор корреляции: неизвестная интеграция платежей PayPal

#paypal #paypal-sandbox #paypal-rest-sdk

Вопрос:

Я пытаюсь реализовать интеграцию сервера с PayPal-PHP-SDK. При нажатии кнопки PayPal это называется API создания платежей . и когда $payment->create($apiContext); выполняется, консоль показывает ошибку -**

 Route::post('create-payment',function (){

    $apiContext = new PayPalRestApiContext(
        new PayPalAuthOAuthTokenCredential(
            'AUxYffBkrIrNeBizbjL9K7_XvlxTSeRnsWx_Uq6xJYZ66QsB00AiGvvZRuTIIJ1XqXEvjo8S4X9zSm-5',     // ClientID
            'ELLhNBC11ecv0yNP27nss5Z5VVHxAhqhGFfyzAn21y5V0a2QWRODVATxC5xSOE08MUDkSPMwY1JhGRkf'      // ClientSecret
        )
    );

    $payer = new Payer();
    $payer->setPaymentMethod("paypal");

    $item1 = new Item();
    $item1->setName('Ground Coffee 40 oz')
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setSku("123123") // Similar to `item_number` in Classic API
        ->setPrice(7.5);
    $item2 = new Item();
    $item2->setName('Granola bars')
        ->setCurrency('USD')
        ->setQuantity(5)
        ->setSku("321321") // Similar to `item_number` in Classic API
        ->setPrice(2);

    $itemList = new ItemList();
    $itemList->setItems(array($item1, $item2));

    $details = new Details();
    $details->setShipping(1.2)
        ->setTax(1.3)
        ->setSubtotal(17.50);

    $amount = new Amount();
    $amount->setCurrency("USD")
        ->setTotal(20)
        ->setDetails($details);

    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($itemList)
        ->setDescription("Payment description")
        ->setInvoiceNumber(uniqid());


    $redirectUrls = new RedirectUrls();
    $redirectUrls->setReturnUrl("http://127.0.0.1:8000/checkout?success=true")
        ->setCancelUrl("http://127.0.0.1:8000/checkout?success=false");

    $payment = new Payment();
    $payment->setIntent("sale")
        ->setPayer($payer)
        ->setRedirectUrls($redirectUrls)
        ->setTransactions(array($transaction));

    $request = clone $payment;

    $payment->create($apiContext);



}); 
 

Я вызвал этот код из route/api.php страница.таким образом, проблемы csrf нет.
Когда я собираюсь выполнить create payment API, модальный PayPal возвращается с этой ошибкой, идентификатор которой неизвестен, я понятия не имею об этой ошибке. Кто-нибудь может помочь ?

Ответ №1:

Не знаю, что конкретно идет не так, не видя полной и точной информации об ошибке, а также кода для кнопки PayPal, которую вы используете.

Однако PayPal-PHP-SDK устарел и использует устаревший API v1/платежей, поэтому я могу рассказать вам об интеграции, которую вы должны выполнять вместо этого, используя текущий Checkout-PHP-SDK для v2/оформления заказа/заказов


Следуйте руководству по настройке стандартных платежей и создайте 2 маршрута на своем сервере, один для «Создания заказа» и один для «Заказа на захват», описанного здесь. Оба маршрута должны возвращать только данные JSON (без HTML или текста). Внутри 2-го маршрута, когда API захвата будет успешным , вы должны сохранить полученные в результате платежные данные в своей базе данных (в частности purchase_units[0].payments.captures[0].id , идентификатор транзакции PayPal) и выполнить любую необходимую бизнес-логику (например, отправить электронное письмо с подтверждением или зарезервировать продукт) непосредственно перед отправкой возвращаемого JSON вызывающему интерфейсу.

Свяжите эти 2 маршрута с потоком утверждения интерфейса: https://developer.paypal.com/demo/checkout/#/pattern/server