1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

srmklive/paypal AUTHORIZE Order with platform_fee in 2024

Discussão em 'Outras Linguagens' iniciado por bit feeder, Outubro 17, 2024 às 09:22.

  1. bit feeder

    bit feeder Guest

    I need to setup paypal orders for a upcoming marketplace website (buyers, merchants and me the platform), but i fail to implement the platform_fee. Internet searches lead me to some paypal marketplace api that I cannot find in my sandbox dev account. The payment goes from buyer to merchant without deducting the platform_fee.

    I read a lot online but most of the linked urls are broken in the paypal docs and i dont know whats the way in 2024 now. Some people say the sandbox account should be enough already, while other people say i need to be in a paypal partner program while other people say i would need to use a marketplace api and i even read somehwere that its not possible with AUTHORIZE orders, im very confused.

    Here is my workflow right now

    Buy Article (create order)

    $provider = new PayPalClient;
    $provider->setApiCredentials(config('paypal'));
    $paypalToken = $provider->getAccessToken();

    $orderData = $provider->createOrder([
    "intent" => "AUTHORIZE",
    "purchase_units" => [
    [
    "amount" => [
    "currency_code" => "EUR",
    "value" => $article->price,
    ],
    "payee" => [
    "email_address" => $sellerPayPalEmail
    ]
    ]
    ],
    "application_context" => [
    "return_url" => route('article.purchase.success', ['id' => $article->id]) . '?status=success',
    "cancel_url" => route('article.purchase.cancel', ['id' => $article->id]) . '?status=cancel',
    ]
    ]);


    article.purchase.success (authorizePaymentOrder)

    $provider = new PayPalClient;
    $provider->setApiCredentials(config('paypal'));
    $paypal = $provider->getAccessToken();
    $provider->setAccessToken($paypal);

    $payerId = $request->query('PayerID');
    $token = $request->query('token');

    $response = $provider->showOrderDetails($token);

    $authorizationResponse = $provider->authorizePaymentOrder($response['id']);
    authorizePaymentOrder()


    CaptureAuthorizedPayment (if i want to process the transaction)

    $provider = new PayPalClient;
    $provider->setApiCredentials(config('paypal'));
    $paypalToken = $provider->getAccessToken();

    $captureResponse = $provider->captureAuthorizedPayment(
    $authorizationId,
    'INVOICE-' . uniqid(),
    $articlePrice,
    'Payment for article',
    [
    'platform_fees' => [
    [
    'amount' => [
    'currency_code' => 'CHF',
    'value' => 15
    ],
    'payee' => [
    'email_address' => $platformPayPalEmail
    ]
    ]
    ]
    ]
    );

    Continue reading...

Compartilhe esta Página