HI all,
I am a long time CyberSource API user and a new Auth.net user. We are a PHP application. We are migrating our platform to Auth.net and I am already confused with the documentation. I am starting with the documentation for the CIM as we do a lot of integration with profiles in our application.
All of the CIM online documentation (in beta, I think) located at http://developer.authorize.net/api/reference/index.html shows examples in an XML format. However the PHP examples in the source code SDK I downloaded from github show exmples using PHP classes. For example, to create a profile in the documentation says:
<?xml version="1.0" encoding="utf-8"?>
<createCustomerProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>API_LOGIN_ID</name>
<transactionKey>API_TRANSACTION_KEY</transactionKey>
</merchantAuthentication>
<profile>
<merchantCustomerId>Merchant_Customer_ID</merchantCustomerId>
<description>Profile description here</description>
<email>customer-profile-email@here.com</email>
<paymentProfiles>
<customerType>individual</customerType>
<payment>
<creditCard>
<cardNumber>4111111111111111</cardNumber>
<expirationDate>2020-12</expirationDate>
</creditCard>
</payment>
</paymentProfiles>
</profile>
<validationMode>testMode</validationMode>
</createCustomerProfileRequest>Whereas the PHP SDK example code (from file AuthorizeNetCIM_Test.php) shows examples like this:
public function testCreateCustomerProfile()
{
// Create new customer profile
$request = new AuthorizeNetCIM;
$customerProfile = new AuthorizeNetCustomer;
$customerProfile->description = "Description of customer";
$customerProfile->merchantCustomerId = time().rand(1,100);
$customerProfile->email = "blahbla@domain.com";
// Add payment profile.
$paymentProfile = new AuthorizeNetPaymentProfile;
$paymentProfile->customerType = "individual";
$paymentProfile->payment->creditCard->cardNumber = "4111111111111111";
$paymentProfile->payment->creditCard->expirationDate = "2015-10";
$customerProfile->paymentProfiles[] = $paymentProfile;
// Add another payment profile.
$paymentProfile2 = new AuthorizeNetPaymentProfile;
$paymentProfile2->customerType = "business";
$paymentProfile2->payment->bankAccount->accountType = "businessChecking";
$paymentProfile2->payment->bankAccount->routingNumber = "121042882";
$paymentProfile2->payment->bankAccount->accountNumber = "123456789123";
$paymentProfile2->payment->bankAccount->nameOnAccount = "Jane Doe";
$paymentProfile2->payment->bankAccount->echeckType = "WEB";
$paymentProfile2->payment->bankAccount->bankName = "Pandora Bank";
$customerProfile->paymentProfiles[] = $paymentProfile2;
// Add shipping address.
$address = new AuthorizeNetAddress;
$address->firstName = "john";
$address->lastName = "Doe";
$address->company = "John Doe Company";
$address->address = "1 Main Street";
$address->city = "Boston";
$address->state = "MA";
$address->zip = "02412";
$address->country = "USA";
$address->phoneNumber = "555-555-5555";
$address->faxNumber = "555-555-5556";
$customerProfile->shipToList[] = $address;
// Add another shipping address.
$address2 = new AuthorizeNetAddress;
$address2->firstName = "jane";
$address2->lastName = "Doe";
$address2->address = "11 Main Street";
$address2->city = "Boston";
$address2->state = "MA";
$address2->zip = "02412";
$address2->country = "USA";
$address2->phoneNumber = "555-512-5555";
$address2->faxNumber = "555-523-5556";
$customerProfile->shipToList[] = $address2;
$response = $request->createCustomerProfile($customerProfile);
$this->assertTrue($response->isOk());
$this->assertEquals(2, count($response->getCustomerShippingAddressIds()));
$this->assertEquals(2, count($response->getCustomerPaymentProfileIds()));
$customerProfileId = $response->getCustomerProfileId();
... etc...
}I am much more comfortable with the latter as I am new to XML, but where can I find reliable documentation for the PHP class type calls instead of the XML version? I am finding it very difficult to match the XML documentation back to the PHP class-style calls.
05-18-2015 03:08 PM
Hello @4classjuggler
Do you still have questions, or was you post below the solution you found?
Richard
05-20-2015 03:25 PM