Add/Import subscriptions without payment data
Overview
This article covers subscription import without credit/debit card information. Use the addSubscription method to import a subscription into the 2Checkout system.
Parameters
Parameters | 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. |
Required (Object) |
|
|
Object designed to provide 2Checkout with all the information to create a subscription. |
Response
SubscriptionReference |
String |
|
Unique, system-generated subscription identifier. |
Request
<?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";// 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 $now = gmdate('Y-m-d H:i:s'); //date_default_timezone_set('UTC') $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; } $Product = new stdClass (); $Product->ProductCode = 'my_subscription_1'; $Product->ProductId = 4639321; $Product->ProductName = '2Checkout Subscription Imported'; $Product->ProductVersion = 1.0; $Product->ProductQuantity = 3; $Product->PriceOptionCodes = array(); $EndUser = new stdClass (); $EndUser->Address1 = 'Address line 1'; $EndUser->Address2 = 'Address line 2'; $EndUser->City = 'LA'; $EndUser->Company = 'Company Name'; $EndUser->CountryCode = "US"; $EndUser->Email = 'customerAPI@2checkout.com'; $EndUser->FirstName = 'Customer'; $EndUser->Language = 'en'; $EndUser->LastName = '2Checkout'; $EndUser->Phone = '1234567890'; $EndUser->State = 'California'; $EndUser->Fax = NULL; $EndUser->Zip = '90210'; $Subscription = new stdClass(); $Subscription->ExternalSubscriptionReference = '12345678912ImportedSubscription'; $Subscription->SubscriptionCode= NULL; $Subscription->StartDate = '2013-01-01'; $Subscription->ExpirationDate = '2017-12-30'; $Subscription->Product = $Product; $Subscription->EndUser = $EndUser; $Subscription->ExternalCustomerReference = '12354678ExtCustRef'; $Subscription->AdditionalInfo = 'Additional information set on subscription'; try { $importedSubscriptionNoPayData = $client->addSubscription($sessionID, $Subscription); } catch (SoapFault $e) { echo "importedSubscriptionNoPayData: " . $e->getMessage(); exit; } var_dump("importedSubscriptionNoPayData", $importedSubscriptionNoPayData);