Retrieve price based on specific options
Overview
Use getPrice to extract cost information for a product/subscription plan, based on a specific list of options.
Parameters
Parameters | Type/Description | |
---|---|---|
Item |
Required (Object) |
|
|
Code |
Required (string) |
|
|
Unique product identifier your control. Max length 256 characters. |
|
Quantity |
Required (String) |
|
|
Number of units. |
|
PriceOptions |
Optional (Array) |
|
|
Array of price option codes. |
Billing details |
Required (Object) |
|
|
Details below. Can be null. |
|
|
FirstName |
Required (string) |
|
|
Shopper name. |
|
LastName |
Required (string) |
|
|
Shopper surname. |
|
CountryCode |
Optional (string) |
|
|
Shopper country. ISO 3166 two-letter code. Include CountryCode in your request in combination with a null value for Currency, to receive the price in the default currency of the country you set. |
|
State |
Optional (string) – Required for US, Brazil and Romania |
|
|
The state in the shopper's country. Mandatory when you set the Billing Country to US, Brazil and Romania. Use case insensitive utf8 strings for the full name, or just the two letter code. |
|
City |
Optional (string) |
|
|
Shopper city. |
|
Address1 |
Optional (string) |
|
|
Shopper address. |
|
Address2 |
Optional (string) |
|
|
Shopper address. |
|
Zip |
Optional (string) |
|
|
ZIP/ Postal code. |
|
|
Optional (string) |
|
|
Shopper email address. |
|
Phone |
Optional (string) |
|
|
Shopper phone number. Mandatory when you set Brazil as the Billing Country. Can be NULL. |
|
Company |
Optional (string) |
|
|
Company name. Can be null for end users. When present, you also need to provide the FiscalCode. |
|
FiscalCode |
Optional (string) – Required for Brazil |
|
|
• For companies, it needs to be the VAT ID. 2Checkout will validate the value provided and throw an error if the VAT ID is invalid/incorrect when calling setPaymentDetails. When present, you also need to provide the Company name. • Mandatory when you set Brazil as the Billing Country. For Brazilian customers it represents the Fiscal Code (CPF/CNPJ). • Can be NULL for end users. |
Currency |
Required (string) |
|
|
The currency ISO code for the payment - ISO 4217. Example: “usd.” |
|
CouponCode |
Optional (string) |
|
|
Promotion coupon/voucher. |
|
PayType |
Optional (string) |
|
|
The payment method:
|
Response
Parameters | Type/Description | ||
---|---|---|---|
ItemPrice | Object | ||
UnitNetPrice |
Optional (double) |
||
|
The value per product unit, excluding sales tax/VAT expressed in the payment currency. |
||
UnitGrossPrice |
Optional (double) |
||
|
Total value per product unit, including sales tax/VAT expressed in the payment currency. UnitGrossPricedoes not reflect any discounts. |
||
UnitVAT |
Optional (double) |
||
|
Sales tax/VAT per product unit expressed in the payment currency. |
||
UnitDiscount |
Optional (double) |
||
|
Value of the discount per product unit expressed in the payment currency. |
||
UnitNetDiscountedPrice |
Optional (double) |
||
|
The value per product unit, expressed in the payment currency, excluding sales tax/VAT, from which 2Checkout deducts the unit discount. |
||
UnitGrossDiscountedPrice |
Optional (double) |
||
|
Total costs shoppers incur per product unit, expressed in the payment currency. This value includes sales tax/VAT, 2Checkout and affiliate commissions, but 2Checkout deducts the value of any discounts. |
||
UnitAffiliateCommission |
Optional (double) |
||
|
Value of the affiliate commission per product unit calculated expressed in the payment currency.
2Checkout deducts discounts from the costs incurred by shoppers before calculating affiliate commissions.
2Checkout does not take into account shipping costs when calculating affiliate commissions.
NULL when 2Checkout does not apply an affiliate commission. |
||
AffiliateCommission | Optional (double) | ||
Value of the affiliate commission for the order calculated from the NetDiscountedPrice expressed in the payment currency. Or NULL. 2Checkout does not take into account shipping costs when calculating affiliate commissions. | |||
Currency | Optional (string) | ||
The currency ISO code for the payment - ISO 4217. Example: “usd.” Use null as value when you include CountryCode in your request, to receive the price in the default currency of the country you set. | |||
Discount | Optional (double) | ||
Value of the discounts for an order expressed in the payment currency. | |||
GrossDiscountedPrice | Optional (double) | ||
Total costs shoppers incur, expressed in the payment currency. This value includes sales tax/VAT, 2Checkout and affiliate commissions, but 2Checkout deducts the value of any discounts. | |||
GrossPrice | Optional (double) | ||
Total order value, including sales tax/VAT expressed in the payment currency. GrossPrice does not reflect any discounts. | |||
NetDiscountedPrice | Optional (double) | ||
The NetPrice order value excluding sales tax/VAT, from which 2Checkout deducts discounts. NetDiscountedPriceis expressed in the payment currency. | |||
NetPrice | Optional (double) | ||
Order value excluding sales tax/VAT expressed in the payment currency. | |||
VAT | Optional (double) | ||
Value of sales tax/VAT expressed in the payment currency. |
Request
<?php
function callRPC($Request, $hostUrl, $Debug = true) {
$curl = curl_init($hostUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSLVERSION, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json'));
$RequestString = json_encode($Request);
curl_setopt($curl, CURLOPT_POSTFIELDS, $RequestString);
if ($Debug) {
$RequestString;
}
$ResponseString = curl_exec($curl);
if ($Debug) {
$ResponseString;
}
if (!empty($ResponseString)) {
$Response = json_decode($ResponseString);
if (isset($Response->result)) {
return $Response->result;
}
if (!is_null($Response->error)) {
var_dump($Request->method, $Response->error);
}
} else {
return null;
}
}
$host = 'https://api.2checkout.com/rpc/3.0/';
$merchantCode = "YOUR_MERCHANT_CODE";// your account's merchant code available in the 'System settings' area of the cPanel: https://secure.2checkout.com/cpanel/account_settings.php
$key = "YOUR_SECRET_KEY";// your account's secret key available in the 'System settings' area of the cPanel: https://secure.2checkout.com/cpanel/account_settings.php
$string = strlen($merchantCode) . $merchantCode . strlen(gmdate('Y-m-d H:i:s')) . gmdate('Y-m-d H:i:s');
$hash = hash_hmac('md5', $string, $key);
$i = 1; // counter for api calls
// call login
$jsonRpcRequest = new stdClass();
$jsonRpcRequest->jsonrpc = '2.0';
$jsonRpcRequest->method = 'login';
$jsonRpcRequest->params = array($merchantCode, gmdate('Y-m-d H:i:s'), $hash);
$jsonRpcRequest->id = $i++;
$sessionID = callRPC($jsonRpcRequest, $host);
$CartItem = new stdClass();
$CartItem->Code = 'my_subscription_1';
$CartItem->Quantity = 1;
$CartItem->PriceOptions = array();
/* $CartItem->Trial = new stdClass();
$CartItem->Trial->Period = 8;
$CartItem->Trial->Price = 0; */
$BillingDetails = NULL;
$Currency = 'USD';
$CouponCode = '123';
$PayType = 'CC';
$jsonRpcRequest = array (
'method' => 'getPrice',
'params' => array($sessionID, $CartItem, $BillingDetails, $Currency, $CouponCode, $PayType),
'id' => $i++,
'jsonrpc' => '2.0'
);
var_dump (callRPC((Object)$jsonRpcRequest, $host, true));