Update customer

Use the updateCustomerInformation method to update the details of a customer entity from the 2Checkout system.

Request parameters

Parameter
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.

Object (required) Use this object to update customer information.

UpdateEndUserSubscriptions

Optional (boolean) You can push the changes made on the customer info to the end-user details for all subscriptions belonging to this customer. Set true to have the changes reflected on the end-user details for all subscriptions. If null or false, the changes are made only at the customer level. Default value is false.

Request sample

<?php
$host   = "https://api.2checkout.com";
$client = new SoapClient($host . "/soap/4.0/?wsdl", array(
    'location' => $host . "/soap/4.0/",
    "stream_context" => stream_context_create(array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false
        )
    ))
));

function hmac($key, $data)
{
    $b = 64; // byte length for md5
    if (strlen($key) > $b) {
        $key = pack("H*", md5($key));
    }
    
    $key    = str_pad($key, $b, chr(0x00));
    $ipad   = str_pad('', $b, chr(0x36));
    $opad   = str_pad('', $b, chr(0x5c));
    $k_ipad = $key ^ $ipad;
    $k_opad = $key ^ $opad;
    return md5($k_opad . pack("H*", md5($k_ipad . $data)));
}

$merchantCode = "YOUR_MERCHANT_CODE";
$key = "YOUR_SECRET_KEY";
$now = gmdate('Y-m-d H:i:s');
$string = strlen($merchantCode) . $merchantCode . strlen($now) . $now;
$hash   = hmac($key, $string);

try {
    $sessionID = $client->login($merchantCode, $now, $hash);
} catch (SoapFault $e) {
    echo "Authentication: " . $e->getMessage();
    exit;
}

$customerReference = 298084139;
$externalCustomerReference = 'Apitest123456';

try {
    $customerInfo = $client->getCustomerInformation($sessionID, $customerReference, $externalCustomerReference);
} catch (SoapFault $e) {
    echo "customerInfo: " . $e->getMessage();
    exit;
}

$customerInfo->Email = '[email protected]';

// New Credit object (optional)
$customerInfo->Credit = new stdClass();
$customerInfo->Credit->Limit = 51.0;       // float
$customerInfo->Credit->Remaining = 21.0;   // float
$customerInfo->Credit->Currency = 'EUR';   // string

$UpdateEndUserSubscriptions = false;

try {
    $updatedCustomerInfo = $client->updateCustomerInformation($sessionID, $customerInfo, $UpdateEndUserSubscriptions);
} catch (SoapFault $e) {
    echo "updatedCustomerInfo: " . $e->getMessage();
    exit;
}

var_dump("updatedCustomerInfo", $updatedCustomerInfo);

Response parameter

Type
Description

Boolean

true or false depending on whether or not the operation succeeded.

Last updated

Was this helpful?