function Step2CreateCreditCard($merchantAccountId) { // $account = get_account_by_merchantAccountId($merchantAccountId); //To save a soap call, you can use sparse objects. $account = new Account(); $account->merchantAccountId = $merchantAccountId; $merchantPaymentMethodId = $merchantAccountId; $paymentMethod = new PaymentMethod(); $cc = new CreditCard(); $paymentMethod->setBillingAddress($account->shippingAddress); $paymentMethod->setMerchantPaymentMethodId($merchantPaymentMethodId); // Use Test cards only in ProdTest. Use Real cards only in Production. $cc->setAccount("4112344112344113"); $cc->setExpirationDate("201811"); $paymentMethod->setType('CreditCard'); $paymentMethod->setCreditCard($cc); // Do not check AVS, CVN. Do not validate. $replaceOnAutoBills = true; $updateBehavior = "Update"; $ignoreAvsPolicy = true; $ignoreCvnPolicy = true; $srd = ''; $response = $account->updatePaymentMethod($srd, $paymentMethod, $replaceOnAutoBills, $updateBehavior, $ignoreAvsPolicy, $ignoreCvnPolicy); // Log soap id for each API call. // $log->addDebug('Method = Account.updatePaymentMethod' . PHP_EOL); // $log->addDebug('Soap Id = ' . $response['data']->return->soapId . PHP_EOL); // $log->addDebug('Return Code = ' . $response['returnCode'] . PHP_EOL); // $log->addDebug('Return String = ' . $response['returnString'] . PHP_EOL); if ($response['returnCode'] == 200) { print "Call succeeded" . PHP_EOL; } else { print "Call failed" . PHP_EOL; } }
<?php ini_set('include_path', '/usr/local'); ini_set('display_errors', 1); error_reporting(E_ALL | E_STRICT); require_once 'Vindicia/Soap/Vindicia.php'; require_once 'Vindicia/Soap/Const.php'; $ccnum = $argv[1]; $pm = new PaymentMethod(); $pm->setType('CreditCard'); $cc = new CreditCard(); $cc->setAccount($ccnum); $pm->setCreditCard($cc); $acct = new Account(); $page = 0; $pageSize = 1000; // max 1000 records per page do { $count = 0; $response = $acct->fetchByPaymentMethod('', $pm, $page, $pageSize); $return_code = $response['returnCode']; print "Return Code is: {$return_code} \n"; print_r($response); if ($return_code == 200) { $accounts = $response['data']->accounts; //$count = sizeof($accounts); foreach ($accounts as $account) { // process each account found here print "Found account with id: " . $account->getMerchantAccountId() . "\n"; $acct_name = $account->getname(); $acct_zip = $account->paymentMethods[0]->billingAddress->postalCode;
$name = "Parent Account"; $addr1 = "19 Davis Dr"; $city = "Belmont"; $state = "CA"; $postalcode = "94002"; $country = "US"; $email = "parent-" . rand(10000, 99999) . "@vindicia.com"; $pAddress = new Address(); $pAddress->setName($name); $pAddress->setAddr1($addr1); $pAddress->setCity($city); $pAddress->setDistrict($state); $pAddress->setPostalCode($postalcode); $pAddress->setCountry($country); $cc = new CreditCard(); $cc->setAccount('4485983356242217'); $cc->setExpirationDate('201710'); $pm = new PaymentMethod(); $pm->setType('CreditCard'); $pm->setBillingAddress($pAddress); $pm->setCreditCard($cc); $pm->setActive(1); $pm_array = array($pm); $pAccountId = "parent-" . rand(1000, 9999) . "-" . rand(1000, 999999); $account = new Account(); $account->setMerchantAccountId($pAccountId); $account->setEmailAddress($email); $account->setShippingAddress($pAddress); $account->setEmailTypePreference('html'); $account->setWarnBeforeAutoBilling(false); $account->setName($name);