Use PayPal Express
Overview
Use the getPayPalExpressCheckoutRedirectURL method to retrieve the RedirectURL by sending an Order object with PAYPAL_EXPRESS payment method.
Parameters
Parameters | Type/Description |
---|---|
sessionID |
Required (string) |
|
Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect. The sessionID expires in 10 minutes. |
Required (Object) |
|
|
Object designed to collect all data necessary for an order, including billing, product/subscription plan and payment details.
Use PAYPAL_EXPRESS as the payment method. |
Response
Parameters | Type/Description |
---|---|
PayPalExpressCheckoutRedirectURL |
String |
Retrieve PayPal redirect URL
<? require ('PATH_TO_AUTH'); $Order = new stdClass(); $Order->Language = 'fr'; //$Order->LocalTime = date('Y-m-d G:i:s'); $Order->CustomerReference = 'APITEST';//uniqid('TESTCUSTOMER:'); $Product = new stdClass(); $Product->Code = 'my_subscription_1'; $Product->Quantity = 1; $Order->Items[] = $Product; $Order->Currency = 'EUR'; $Payment = new stdClass(); $Payment->Type = 'PAYPAL_EXPRESS'; $Payment->Currency = 'EUR'; $Payment->CustomerIP = '91.220.121.21'; $PayPalExpress = new stdClass(); $PayPalExpress->Email='customer@email.com'; $PayPalExpress->ReturnURL = 'http://' . $_SERVER['HTTP_HOST'] . '/api/place_order_api_soap_paypal_express_response.php'; $PayPalExpress->CancelURL = 'http://' . $_SERVER['HTTP_HOST'] . '/api/place_order_api_soap_paypal_express_response.php' . '?cancel=true'; $Payment->PaymentMethod = $PayPalExpress; $Order->PaymentDetails = $Payment; // Call the method for retrieving Express Checkout redirect URL $redirectUrl = $client->getPayPalExpressCheckoutRedirectURL($sessionID,$Order); header('Location:' . $redirectUrl);
Place order with PayPal Express
<?php require ('PATH_TO_AUTH'); // This is the start of the second script place_order_api_json_paypal_express_response.php var_dump($_REQUEST); if (isset($_GET['billingDetails'])) { $billingDetails = base64_decode($_GET['billingDetails']); parse_str($billingDetails, $billingDetailsArray); } if (isset($_GET['deliveryDetails'])) { $deliveryDetails = base64_decode($_GET['deliveryDetails']); parse_str($deliveryDetails, $deliveryDetailsArray); } if (isset($_GET['token'])) { $token = $_GET['token']; } if (!empty($_GET['cancel']) && $_GET['cancel'] == true) { echo 'canceled'; die(); } else { echo 'success!'; } $Order = new stdClass(); $Order->Language = 'fr'; $Order->CustomerReference = 'APITEST';//uniqid('TESTCUSTOMER:'); $Product = new stdClass(); $Product->Code = 'my_subscription_1'; $Product->Quantity = 1; $Order->Items[] = $Product; $Billing = new stdClass(); $Billing->Country = empty($billingDetailsArray['Country']) ? '' : $billingDetailsArray['Country']; $Billing->City = empty($billingDetailsArray['City']) ? '' : $billingDetailsArray['City']; $Billing->State = empty($billingDetailsArray['State']) ? '' : $billingDetailsArray['State']; $Billing->PostalCode = empty($billingDetailsArray['PostalCode']) ? '' : $billingDetailsArray['PostalCode']; $Billing->Email = empty($billingDetailsArray['Email']) ? '' : $billingDetailsArray['Email']; $Billing->FirstName = empty($billingDetailsArray['FirstName']) ? '' : $billingDetailsArray['FirstName']; $Billing->LastName = empty($billingDetailsArray['LastName']) ? '' : $billingDetailsArray['LastName']; $Billing->Address = empty($billingDetailsArray['Address']) ? '' : $billingDetailsArray['Address']; $Order->BillingDetails = $Billing; $Delivery = new stdClass(); $Delivery->Country = empty($deliveryDetailsArray['Country']) ? '' : $deliveryDetailsArray['Country']; $Delivery->City = empty($deliveryDetailsArray['City']) ? '' : $deliveryDetailsArray['City']; $Delivery->State = empty($deliveryDetailsArray['State']) ? '' : $deliveryDetailsArray['State']; $Delivery->FirstName = empty($deliveryDetailsArray['FirstName']) ? '' : $deliveryDetailsArray['FirstName']; $Delivery->LastName = empty($deliveryDetailsArray['LastName']) ? '' : $deliveryDetailsArray['LastName']; $Delivery->Address = empty($deliveryDetailsArray['Address']) ? '' : $deliveryDetailsArray['Address']; $Delivery->PostalCode = empty($deliveryDetailsArray['PostalCode']) ? '' : $deliveryDetailsArray['PostalCode']; $Order->DeliveryDetails = $Delivery; $Payment = new stdClass(); $Payment->Type = 'PAYPAL_EXPRESS'; $Payment->Currency = 'EUR'; // for sku $Payment->CustomerIP = '91.220.121.21'; $PayPal = new stdClass(); $PayPal->Email='customer@email.com'; $PayPal->Token = $token; $PayPal->ReturnURL = 'http://' . $_SERVER['HTTP_HOST'] . '/api/place_order_api_soap_paypal_express_response.php1'; $PayPal->CancelURL = 'http://' . $_SERVER['HTTP_HOST'] . '/api/place_order_api_soap_paypal_express_response.php1' . '?cancel=true'; $Payment->PaymentMethod = $PayPal; $Order->PaymentDetails = $Payment; $OrderField = new stdClass(); $OrderField->Code = 'ED5310'; $OrderField->Value = 'Value1'; // Call the method for placing the order $APIOrderFullInfo = $client->placeOrder($sessionID, $Order); var_dump($APIOrderFullInfo);