How can server-to-server requests with payment service providers like PayPal be utilized in PHP to ensure secure transactions?

To ensure secure transactions with payment service providers like PayPal in PHP, server-to-server requests can be utilized. This involves sending payment information directly from the server to the payment provider's server, bypassing the client-side and reducing the risk of tampering or interception.

// Example of making a server-to-server request to PayPal for a payment transaction

$ch = curl_init();

// Set the API endpoint for PayPal
curl_setopt($ch, CURLOPT_URL, 'https://api.sandbox.paypal.com/v1/payments/payment');

// Set the request headers
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: Bearer <YOUR_PAYPAL_ACCESS_TOKEN>'
));

// Set the request body with payment details
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
    'intent' => 'sale',
    'payer' => array(
        'payment_method' => 'paypal'
    ),
    'transactions' => array(
        array(
            'amount' => array(
                'total' => '10.00',
                'currency' => 'USD'
            )
        )
    )
)));

// Execute the request
$response = curl_exec($ch);

// Close the cURL session
curl_close($ch);

// Process the response from PayPal
if ($response) {
    $result = json_decode($response, true);
    // Handle the PayPal response accordingly
} else {
    // Handle any errors with the request
}