Update order reseller information
Use this method to update the reseller information defined for a specific order.
Request parameters
sessionID
Required (string) Session identifier, which is the output of the Login method. An exception will be thrown if the values are incorrect.
PartnerCode
Required (string) Unique identifier that you need to specify when creating a partner in the Control Panel. You can find it under the General Information area when editing partner details.
ResellerCode
Required (string) Unique, system generated reseller identifier.
OrderRefNo
Required (string) The unique, system-generated identifier of a partner order.
Request sample
<?php
declare(strict_types=1);
class Configuration
{
public const MERCHANT_CODE = 'MERCHANT';
public const MERCHANT_KEY = 'SECRET_KEY';
public const URL = 'https://api.2checkout.local/rpc/6.0';
public const ACTION = 'updateOrderReseller';
//array or JSON
public const PAYLOAD = <<<JSON
{
"PartnerCode": "Test Avangate",
"ResellerCode": "DB6F1A946E",
"OrderRefNo": 731522351
}
JSON;
}
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;
$algo = 'sha256';
$hash = hash_hmac($algo, $string, $key);
return compact('merchantCode', 'date', 'hash', 'algo');
}
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];
}
$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,
['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);Errors
Missing required parameter: PartnerCode
Add the PartnerCode parameter.
Missing required parameter: ResellerCode
Add the ResellerCode parameter.
Missing required parameter: OrderRefNo
Add the OrderRefNo parameter.
INVALID_ID_SALE
Invalid order reference.
Last updated
Was this helpful?