Use custom pricing
Overview
Place an order with on the fly pricing using catalog products defined in your Control Panel. Set the Items->Price->Type parameter to CUSTOM, while adding the dynamic price to the Items->Price->Amount parameter.
Payment methods
You can place orders with dynamic pricing using the following payment methods:
- Credit cards
- PayPal
- WeChat Pay
- iDEAL
- Purchase Order
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. |
Order |
Required (Object) |
|
Object designed to collect all data necessary for an order, including billing, product/subscription plan and payment details. |
Response
Parameters | Type/Description |
---|---|
Object |
Request
<?php require ('PATH_TO_AUTH'); $Order = new stdClass(); $Order->RefNo = NULL; $Order->Currency = 'usd'; $Order->Country = 'US'; $Order->Language = 'en'; $Order->CustomerIP = '91.220.121.21'; $Order->ExternalReference = NULL; $Order->Source = NULL; $Order->AffiliateId = NULL; $Order->CustomerReference = NULL; $Order->Items = array(); $Order->Items[0] = new stdClass(); $Order->Items[0]->Code = 'my_subscription_1'; $Order->Items[0]->Quantity = 1; $Order->Items[0]->PriceOptions = NULL; $Order->Items[0]->SKU = NULL; $Order->Items[0]->CrossSell = NULL; $Order->Items[0]->Trial = false; $Order->Items[0]->AdditionalFields = NULL; $Order->Items[0]->SubscriptionStartDate = NULL; //If empty or null, subscriptions become active when purchase is made. $Order->Items[0]->Price = new stdClass(); $Order->Items[0]->Price->Amount = 11; // set the price of the order $Order->Items[0]->Price->Type = 'CUSTOM'; // must be sent as CUSTOM in order to use dynamic pricing $Order->BillingDetails = new stdClass(); $Order->BillingDetails->FirstName = 'FirstName'; $Order->BillingDetails->LastName = 'LastName'; $Order->BillingDetails->CountryCode = 'us'; $Order->BillingDetails->State = 'California'; $Order->BillingDetails->City = 'LA'; $Order->BillingDetails->Address1 = 'Address example'; $Order->BillingDetails->Address2 = NULL; $Order->BillingDetails->Zip = '90210'; $Order->BillingDetails->Email = 'email@2checkout.com'; $Order->BillingDetails->Phone = NULL; $Order->BillingDetails->Company = NULL; $Order->DeliveryDetails = NULL; $Order->PaymentDetails = new stdClass (); $Order->PaymentDetails->Type = 'CC'; // you can also use TEST, PAYPAL, PURCHASEORDER, WE_CHAT_PAY, IDEAL, CHECK. The flow and requirements are different for each payment method. $Order->PaymentDetails->Currency = 'usd'; $Order->PaymentDetails->PaymentMethod = new stdClass (); $Order->PaymentDetails->CustomerIP = '10.10.10.10'; $Order->PaymentDetails->PaymentMethod->RecurringEnabled = true; $Order->PaymentDetails->PaymentMethod->CardNumber = "4111111111111111"; $Order->PaymentDetails->PaymentMethod->CardType = 'visa'; $Order->PaymentDetails->PaymentMethod->ExpirationYear = '2019'; $Order->PaymentDetails->PaymentMethod->ExpirationMonth = '12'; $Order->PaymentDetails->PaymentMethod->HolderName = 'John'; $Order->PaymentDetails->PaymentMethod->CCID = '123'; $Order->Promotions = NULL; $Order->AdditionalFields = NULL; $Order->LocalTime = NULL; $Order->GiftDetails = NULL; $jsonRpcRequest = array ( 'method' => 'placeOrder', 'params' => array($sessionID, $Order), 'id' => $i++, 'jsonrpc' => '2.0' ); echo "<pre>"; var_dump (callRPC((Object)$jsonRpcRequest, $host, true));