Search customers
Use the searchCustomers method via SOAP API 6.0 to identify customers by applying a set of filters.
Request parameters
Parameter
Type / Description
Email
Optional (string) Strict match of the email address. It should be case insensitive.
Phone
Optional (string) Strict match of the phone number.
CountryCode
Optional (string) Strict match of the customer's country code.
Language
Optional (string) Strict match of the customer's language.
Trial
Optional (boolean)
Status
Optional (enum) Can be active, inactive.
Pagination
Optional (object)
Pagination.Limit
Optional (int)
Pagination.Page
Optional (int)
Request sample
<?php
declare(strict_types=1);
class Configuration
{
public const MERCHANT_CODE = '';
public const MERCHANT_KEY = '';
public const URL = 'http://api.2checkout.com/soap/6.0';
public const ACTION = 'searchCustomers';
public const ADDITIONAL_OPTIONS = null;
//array or JSON
public const PAYLOAD = <<<JSON
{
"Email": "test@email.com",
"Language": "en",
"CountryCode": "us",
"Trial": true,
"Status": "ACTIVE",
"Phone": "403324433234",
"Pagination": {
"Limit": 1,
"Page": 1
}
}
JSON;
}
class Client
{
public function call(
string $url = Configuration::URL,
$payload = Configuration::PAYLOAD,
string $action = Configuration::ACTION
): ?object
{
if (is_array($payload)) {
$payload = json_encode($payload);
}
if (!empty($payload)) {
// SoapClient works with objects(StdClass)
$payload = json_decode($payload);
}
$soapClient = $this->getClient($url);
$sessionId = $this->getSession($soapClient);
$args = array_filter([$sessionId, $payload]);
return $soapClient->$action(...$args);
}
public function getClient(string $url): SoapClient
{
return new SoapClient(
$url . '?wsdl',
[\
'location' => $url,\
'cache_wsdl' => WSDL_CACHE_NONE,\
]
);
}
public function getSession(SoapClient $client)
{
$date = gmdate('Y-m-d H:i:s');
$merchantCode = Configuration::MERCHANT_CODE;
$key = Configuration::MERCHANT_KEY;
$string = strlen($merchantCode) . $merchantCode . strlen($date) . $date;
$hash = hash_hmac('md5', $string, $key);
// $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');
return $client->login($merchantCode, $date, $hash);
}
}
try {
$client = new Client();
var_dump($client->call());
} catch (Exception $ex) {
var_dump($ex);
}Last updated
Was this helpful?