Retrieve a specific proposal version
Overview
Use the getProposalVersion method via JSON-RPC API 6.0 to retrieve a specific proposal version.
Request Parameters
Parameters | Type | Required/Optional | Description |
---|---|---|---|
proposalId | String | Required | The proposal identifier. |
proposalVersion | Integer | Required | The proposal version. |
Request Sample
<?php declare(strict_types=1); class Configuration { public const MERCHANT_CODE = ''; public const MERCHANT_KEY = ''; public const URL = 'http://api.2checkout.com/rpc/6.0'; public const ACTION = 'getProposalVersion'; public const ADDITIONAL_OPTIONS = null; //array or JSON public const PAYLOAD = [ "7ee02473-b60a-415b-90ae-87c6c443f684", 3 ]; } class Client { private const LOGIN_METHOD = 'login'; private $calls = 1; private $sessionId; private function generateAuth(): array { $merchantCode = Configuration::MERCHANT_CODE; $key = Configuration::MERCHANT_KEY; $date = gmdate('Y-m-d H:i:s'); $string = strlen($merchantCode) . $merchantCode . strlen($date) . $date; $hash = hash_hmac('md5', $string, $key); return compact('merchantCode', 'date', 'hash'); } public function login(string $url) { $payload = $this->generateAuth(); $response = $this->call($url, array_values($payload), self::LOGIN_METHOD); $this->sessionId = $response['result']; } public function call( string $url = Configuration::URL, $payload = Configuration::PAYLOAD, string $action = Configuration::ACTION ): ?array { if (empty($this->sessionId) && $action !== self::LOGIN_METHOD) { $this->login($url); } if(is_string($payload)) { $payload = json_decode($payload, true); } if (!empty($this->sessionId)) { $payload = [$this->sessionId, $payload[0], $payload[1]]; } $payload = array_filter($payload); $request = json_encode([ 'jsonrpc' => '2.0', 'method' => $action, 'params' => $payload, 'id' => $this->calls++, ]); $curl = curl_init($url); 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', 'Cookie: XDEBUG_SESSION=PHPSTORM')); curl_setopt($curl, CURLOPT_POSTFIELDS, $request); $response = curl_exec($curl); if(empty($response)) { die('Server unavailable'); } echo $response . '</br>'; return json_decode($response, true);; } } $client = new Client(); $result = $client->call(); var_dump($result);
Response
The getProposalVersion call via JSON-RPC API 6.0 returns the Proposal object.