115 lines
3.3 KiB
PHP
115 lines
3.3 KiB
PHP
|
<?php
|
||
|
|
||
|
error_reporting(E_ALL);
|
||
|
|
||
|
function api_call()
|
||
|
{
|
||
|
// Basic data for the call
|
||
|
$pp_accessToken = "YOUR_ACCESS_TOKEN";
|
||
|
$pp_auth_assertion = "YOUR_AUTH_ASSERTION_HEADER"; // Only needed if you do this in 3rd party as a platform
|
||
|
$custom_id = uniqid();
|
||
|
$invoice_id = uniqid();
|
||
|
$request_id = uniqid();
|
||
|
$metadata_id = uniqid();
|
||
|
$pp_description = "Gaming Laptop from VR Shopping Mall";
|
||
|
$pp_currency = "EUR";
|
||
|
$pp_vaultID = "THE_VAULT_TOKEN_ID";
|
||
|
$pp_amount = $_GET["amount"];
|
||
|
$pp_tax = 2.0;
|
||
|
$pp_total = $pp_amount + $pp_tax;
|
||
|
|
||
|
$success = false;
|
||
|
|
||
|
$ch = curl_init();
|
||
|
|
||
|
curl_setopt($ch, CURLOPT_URL, "https://api-m.sandbox.paypal.com/v2/checkout/orders");
|
||
|
curl_setopt($ch, CURLOPT_POST, true);
|
||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array (
|
||
|
"Content-Type: application/json",
|
||
|
"Authorization: Bearer ".$pp_accessToken,
|
||
|
"PayPal-Auth-Assertion: ".$pp_auth_assertion, // Remove this line if doing 1st party payment
|
||
|
"PayPal-Request-Id: ".$request_id,
|
||
|
"PayPal-Metadata-Id: ".$metadata_id,
|
||
|
"Prefer: return=representation"
|
||
|
));
|
||
|
|
||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
|
||
|
"intent": "CAPTURE",
|
||
|
"purchase_units":
|
||
|
[
|
||
|
{
|
||
|
"reference_id": "pp_order_item_1",
|
||
|
"description": "'.$pp_description.'",
|
||
|
"custom_id": "'.$custom_id.'",
|
||
|
"invoice_id": "ELUSIVE '.$invoice_id.'",
|
||
|
"soft_descriptor": "ELUSIVE CORP",
|
||
|
"amount": {
|
||
|
"currency_code": "'.$pp_currency.'",
|
||
|
"value": "'.$pp_total.'",
|
||
|
"breakdown": {
|
||
|
"item_total": {
|
||
|
"currency_code": "'.$pp_currency.'",
|
||
|
"value": "'.$_GET["amount"].'"
|
||
|
},
|
||
|
"tax_total": {
|
||
|
"currency_code": "EUR",
|
||
|
"value": "'.$pp_tax.'"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"shipping":
|
||
|
{
|
||
|
"type": "SHIPPING",
|
||
|
"name": {
|
||
|
"full_name": "Elusive Man"
|
||
|
},
|
||
|
"address": {
|
||
|
"address_line_1": "Kamener Str. 75",
|
||
|
"address_line_2": "",
|
||
|
"admin_area_2": "Unna",
|
||
|
"admin_area_1": "",
|
||
|
"postal_code": "59425",
|
||
|
"country_code": "DE"
|
||
|
}
|
||
|
},
|
||
|
"items": [
|
||
|
{
|
||
|
"name": "VR Gaming Shopping",
|
||
|
"quantity": 1,
|
||
|
"description": "Nvidia Gaming Laptop",
|
||
|
"category": "PHYSICAL_GOODS",
|
||
|
"unit_amount": {
|
||
|
"currency_code": "'.$pp_currency.'",
|
||
|
"value": "'.$_GET["amount"].'"
|
||
|
},
|
||
|
"tax":
|
||
|
{
|
||
|
"currency_code": "EUR",
|
||
|
"value": "'.$pp_tax.'"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"payment_source": {
|
||
|
"paypal": {
|
||
|
"vault_id": "'.$pp_vaultID.'"
|
||
|
}
|
||
|
}
|
||
|
}'
|
||
|
);
|
||
|
|
||
|
$result = curl_exec($ch);
|
||
|
curl_close($ch);
|
||
|
$res = json_decode($result, true);
|
||
|
|
||
|
if ($res["status"] == "COMPLETED") { $success = true; }
|
||
|
return $success;
|
||
|
}
|
||
|
|
||
|
$success = api_call();
|
||
|
if ($success == true) { echo "SUCCESS"; } else { echo "DENIED"; }
|
||
|
|
||
|
?>
|