File: /var/www/dev.captainschairit.com/wp-content/themes/captainschare/create-customer-profile.php
<?php
require VENDOR_AUTOLOAD;
require_once CONSTANTS;
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;
define("AUTHORIZENET_LOG_FILE", "phplog");
function createCustomerProfile($email, $billing_info, $card_info, $company_info, $package_info)
{
/* Create a merchantAuthenticationType object with authentication details
retrieved from the constants file */
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName(\SampleCodeConstants::MERCHANT_LOGIN_ID);
$merchantAuthentication->setTransactionKey(\SampleCodeConstants::MERCHANT_TRANSACTION_KEY);
// Set the transaction's refId
$refId = 'ref' . time();
// Create a Customer Profile Request
// 1. (Optionally) create a Payment Profile
// 2. (Optionally) create a Shipping Profile
// 3. Create a Customer Profile (or specify an existing profile)
// 4. Submit a CreateCustomerProfile Request
// 5. Validate Profile ID returned
// Set credit card information for payment profile
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber($card_info['card_no']);
$creditCard->setExpirationDate($card_info['exp_year'].'-'.$card_info['exp_month']);
$creditCard->setCardCode($card_info['cvv_no']);
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
// Create the Bill To info for new payment type
$billTo = new AnetAPI\CustomerAddressType();
$billTo->setFirstName($billing_info['first_name']);
$billTo->setLastName($billing_info['last_name']);
$billTo->setCompany($billing_info['company_name']);
$billTo->setAddress($billing_info['bill_address']);
$billTo->setCity($billing_info['bill_city']);
$billTo->setState($billing_info['bill_state']);
$billTo->setZip($billing_info['bill_zip']);
$billTo->setCountry($billing_info['bill_country']);
$billTo->setPhoneNumber($billing_info['phone_no']);
// Create a new CustomerPaymentProfile object
$paymentProfile = new AnetAPI\CustomerPaymentProfileType();
$paymentProfile->setCustomerType('individual');
$paymentProfile->setBillTo($billTo);
$paymentProfile->setPayment($paymentCreditCard);
$paymentProfiles[] = $paymentProfile;
// Create a new CustomerProfileType and add the payment profile object
$customerProfile = new AnetAPI\CustomerProfileType();
$customerProfile->setDescription($billing_info['company_name']);
$customerProfile->setMerchantCustomerId("M_" . time());
$customerProfile->setEmail($email);
$customerProfile->setpaymentProfiles($paymentProfiles);
// $customerProfile->setShipToList($shippingProfiles);
// Assemble the complete transaction request
$request = new AnetAPI\CreateCustomerProfileRequest();
$request->setMerchantAuthentication($merchantAuthentication);
$request->setRefId($refId);
$request->setProfile($customerProfile);
// Create the controller and get the response
$controller = new AnetController\CreateCustomerProfileController($request);
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
// $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
return $response;
}
if (!defined('DONT_RUN_SAMPLES')) {
// createCustomerProfile("test123@test.com");
}