private function charge_credit_card()
 {
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     $merchantAuthentication->setName($this->api_login_id);
     $merchantAuthentication->setTransactionKey($this->api_transaction_key);
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $creditCard->setCardNumber($this->card_number);
     $creditCard->setExpirationDate($this->expiration_year . '-' . $this->expiration_month);
     $paymentOne = new AnetAPI\PaymentType();
     $paymentOne->setCreditCard($creditCard);
     // Order info
     $order = new AnetAPI\OrderType();
     $order->setInvoiceNumber($this->invoice_number);
     $order->setDescription(get_bloginfo('name'));
     $cart_contents = $this->purchase_log->get_cart_contents();
     $lineitems = array();
     // Line Item Info
     foreach ($cart_contents as $index => $item) {
         // this is for the product options support that can be used in place of variations
         if (defined('OPTION_BASE')) {
             $options = wpsc_get_cart_item_meta($item->id, OPTION_BASE, true);
             if (!empty($options)) {
                 $options_message = strip_tags($options->message());
             }
         }
         $custom_description = $item->name . ' ' . $options_message . ' ' . $item->custom_message;
         $lineitems[$index] = new AnetAPI\LineItemType();
         $lineitems[$index]->setItemId($item->prodid);
         $lineitems[$index]->setName(substr($item->name, 0, 31));
         $lineitems[$index]->setDescription(substr($custom_description, 0, 255));
         $lineitems[$index]->setQuantity($item->quantity);
         $lineitems[$index]->setUnitPrice($this->force_two_decimals($item->price));
         $lineitems[$index]->setTaxable(0.0 != floatval($item->tax_charged));
     }
     // Tax info
     $tax = new AnetAPI\ExtendedAmountType();
     $tax->setName("Sales Tax");
     $tax->setAmount($this->force_two_decimals($this->purchase_log->get('wpec_taxes_total')));
     $tax->setDescription("Sales Tax");
     // Customer info
     $customer = new AnetAPI\CustomerDataType();
     $wp_user = get_user_by('email', $this->checkout_data->get('billingemail'));
     if ($wp_user) {
         $customer->setId($wp_user->ID);
     }
     $customer->setEmail($this->checkout_data->get('billingemail'));
     // PO Number
     $ponumber = $this->checkout_data->get('billingponumber');
     //Ship To Info
     $shipto = new AnetAPI\NameAndAddressType();
     $shipto->setFirstName($this->checkout_data->get('shippingfirstname'));
     $shipto->setLastName($this->checkout_data->get('shippinglastname'));
     //		$shipto->setCompany( $this->checkout_data->get( 'shippingcompany') );
     $shipto->setAddress($this->checkout_data->get('shippingaddress'));
     $shipto->setCity($this->checkout_data->get('shippingcity'));
     $shipto->setState($this->checkout_data->get('shippingstate'));
     $shipto->setZip($this->checkout_data->get('shippingpostcode'));
     $shipto->setCountry($this->checkout_data->get('shippingcountry'));
     // Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($this->checkout_data->get('billingfirstname'));
     $billto->setLastName($this->checkout_data->get('billinglastname'));
     //		$billto->setCompany(  $this->checkout_data->get( 'billingcompany') );
     $billto->setAddress($this->checkout_data->get('billingaddress'));
     $billto->setCity($this->checkout_data->get('billingcity'));
     $billto->setState($this->checkout_data->get('billingstate'));
     $billto->setZip($this->checkout_data->get('billingpostcode'));
     $billto->setCountry($this->checkout_data->get('billingcountry'));
     $billto->setPhoneNumber($this->checkout_data->get('billingphone'));
     //create a transaction
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     foreach ($lineitems as $lineitem) {
         $transactionRequestType->addToLineItems($lineitem);
     }
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($this->force_two_decimals($this->purchase_log->get('totalprice')));
     $transactionRequestType->setTax($tax);
     $transactionRequestType->setPayment($paymentOne);
     $transactionRequestType->setOrder($order);
     if (!empty($ponumber)) {
         $transactionRequestType->setPoNumber($ponumber);
     }
     $transactionRequestType->setCustomer($customer);
     $transactionRequestType->setBillTo($billto);
     $transactionRequestType->setShipTo($shipto);
     if (!empty($_SERVER['REMOTE_ADDR'])) {
         $transactionRequestType->setCustomerIP($_SERVER['REMOTE_ADDR']);
     }
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     if ($this->sandbox_mode) {
         $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     } else {
         $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
     }
     $result = false;
     if ($response != null) {
         $tresponse = $response->getTransactionResponse();
         if ($tresponse != null) {
             // see http://developer.authorize.net/api/reference/ for definitions
             if ($tresponse->getResponseCode() == "1") {
                 // 1 = Approved
                 $this->set_purchaselog_status(WPSC_Purchase_Log::ACCEPTED_PAYMENT);
                 $result = true;
             } elseif ($tresponse->getResponseCode() == "2") {
                 // 2 = Declined
                 $this->set_purchaselog_status(WPSC_Purchase_Log::INCOMPLETE_SALE);
                 $result = true;
             } elseif ($tresponse->getResponseCode() == "3") {
                 // 3 = Error
                 $this->set_purchaselog_status(WPSC_Purchase_Log::INCOMPLETE_SALE);
                 $result = false;
             } elseif ($tresponse->getResponseCode() == "4") {
                 // 4 = Held for Review
                 $this->set_purchaselog_status(WPSC_Purchase_Log::INCOMPLETE_SALE);
                 $result = true;
             } else {
                 // Unknown transaction code
                 $this->set_purchaselog_status(WPSC_Purchase_Log::INCOMPLETE_SALE);
                 error_log(__CLASS__ . '::' . __FUNCTION__ . ' ' . "ERROR: Charge Credit Card ERROR : Unknown transaction response code");
             }
             wpsc_update_purchase_meta($this->invoice_number, 'pbci_auth_net_raw_response', $tresponse);
             $messages = wpsc_get_customer_meta('checkout_misc_error_messages');
             if (!is_array($messages)) {
                 $messages = array();
             }
             // get the transaction error messages
             $transaction_error_messages = $response->getMessages();
             if ($transaction_error_messages) {
                 $transaction_error_messages = $transaction_error_messages->getMessage();
             }
             if (!is_array($transaction_error_messages)) {
                 $transaction_error_messages = array($transaction_error_messages);
             }
             foreach ($transaction_error_messages as $error_message) {
                 $messages[] = $error_message->getText();
             }
             // get the transaction response error messages
             $transaction_errors = $tresponse->getErrors();
             foreach ($transaction_errors as $transaction_error) {
                 $messages[] = $transaction_error->getErrorText();
             }
             wpsc_update_customer_meta('checkout_misc_error_messages', $messages);
             $this->purchase_log->set('transactid', $tresponse->getTransId());
             $this->purchase_log->set('authcode', $tresponse->getAuthCode());
         } else {
             error_log(__CLASS__ . '::' . __FUNCTION__ . ' ' . "ERROR: Charge Credit Card ERROR :  Invalid response");
         }
     } else {
         error_log(__CLASS__ . '::' . __FUNCTION__ . ' ' . "ERROR: Charge Credit card Null response returned");
     }
     $this->purchase_log->save();
     return $result;
 }
 public static function CreateCustomerProfile(Payload $payload)
 {
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     $merchantAuthentication->setName(config('subscription.API_LOGIN_ID'));
     $merchantAuthentication->setTransactionKey(config('subscription.TRANSACTION_KEY'));
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $creditCard->setCardNumber($payload->cardNumber);
     $creditCard->setExpirationDate($payload->expiryDate);
     $paymentCreditCard = new AnetAPI\PaymentType();
     $paymentCreditCard->setCreditCard($creditCard);
     // Create the Bill To info
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($payload->firstName);
     $billto->setLastName($payload->lastName);
     $billto->setCompany($payload->company);
     $billto->setAddress($payload->address);
     $billto->setCity($payload->city);
     $billto->setState($payload->state);
     $billto->setZip($payload->zip);
     $billto->setCountry("USA");
     // Create a Customer Profile Request
     //  1. create a Payment Profile
     //  2. create a Customer Profile
     //  3. Submit a CreateCustomerProfile Request
     //  4. Validate Profiiel ID returned
     $paymentprofile = new AnetAPI\CustomerPaymentProfileType();
     $paymentprofile->setCustomerType('individual');
     $paymentprofile->setBillTo($billto);
     $paymentprofile->setPayment($paymentCreditCard);
     $paymentprofiles[] = $paymentprofile;
     $customerprofile = new AnetAPI\CustomerProfileType();
     $customerprofile->setDescription($payload->description);
     $customerprofile->addToShipToList($billto);
     $merchantCustomerId = time() . rand(1, 150);
     $customerprofile->setMerchantCustomerId($merchantCustomerId);
     $customerprofile->setEmail($payload->email);
     $customerprofile->setPaymentProfiles($paymentprofiles);
     $request = new AnetAPI\CreateCustomerProfileRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setProfile($customerprofile);
     $controller = new AnetController\CreateCustomerProfileController($request);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     if ($response != null && $response->getMessages()->getResultCode() == "Ok") {
         return $response;
     } else {
         throw new PaymentErrorException($response->getMessages()->getMessage()[0]->getText());
     }
 }
Exemple #3
0
$customer->setId("15");
$customer->setEmail("*****@*****.**");
// PO Number
$ponumber = "15";
//Ship To Info
$shipto = new AnetAPI\NameAndAddressType();
$shipto->setFirstName("Bayles");
$shipto->setLastName("China");
$shipto->setCompany("Thyme for Tea");
$shipto->setAddress("12 Main Street");
$shipto->setCity("Pecan Springs");
$shipto->setState("TX");
$shipto->setZip("44628");
$shipto->setCountry("USA");
// Bill To
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName("Ellen");
$billto->setLastName("Johnson");
$billto->setCompany("Souveniropolis");
$billto->setAddress("14 Main Street");
$billto->setCity("Pecan Springs");
$billto->setState("TX");
$billto->setZip("44628");
$billto->setCountry("USA");
//create a transaction
$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType("authCaptureTransaction");
$transactionRequestType->setAmount(151.51);
$transactionRequestType->setPayment($paymentOne);
$transactionRequestType->setOrder($order);
$transactionRequestType->addToLineItems($lineitem);
$refId = 'ref' . time();
//Set profile ids of profile to be updated
$request = new AnetAPI\UpdateCustomerPaymentProfileRequest();
$request->setMerchantAuthentication($merchantAuthentication);
$request->setCustomerProfileId("36731856");
$controller = new AnetController\GetCustomerProfileController($request);
// We're updating the billing address but everything has to be passed in an update
// For card information you can pass exactly what comes back from an GetCustomerPaymentProfile
// if you don't need to update that info
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber("XXXX1111");
$creditCard->setExpirationDate("XXXX");
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
// Create the Bill To info for new payment type
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName("Mrs Mary");
$billto->setLastName("Doe");
$billto->setAddress("1 New St.");
$billto->setCity("Brand New City");
$billto->setState("WA");
$billto->setZip("98004");
$billto->setPhoneNumber("000-000-0000");
$billto->setfaxNumber("999-999-9999");
$billto->setCountry("USA");
// Create the Customer Payment Profile object
$paymentprofile = new AnetAPI\CustomerPaymentProfileExType();
$paymentprofile->setCustomerPaymentProfileId("33211899");
$paymentprofile->setBillTo($billto);
$paymentprofile->setPayment($paymentCreditCard);
// Submit a UpdatePaymentProfileRequest
 public function individual_auto_recurring($data)
 {
     //   pr($this->request->data); exit;
     //Get ID and Input amount from edit_customer page
     $cid = $data['cid'];
     // pr($this->request->data); exit;
     //pr($this->request->data['Transaction']);
     $this->layout = 'ajax';
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     //   $merchantAuthentication->setName("95x9PuD6b2"); // testing mode
     $merchantAuthentication->setName("7zKH4b45");
     //42UHbr9Qa9B live mode
     // $merchantAuthentication->setTransactionKey("547z56Vcbs3Nz9R9");  // testing mode
     $merchantAuthentication->setTransactionKey("738QpWvHH4vS59vY");
     // live mode 7UBSq68ncs65p8QX
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $this->loadModel('PackageCustomer');
     $this->loadModel('Transaction');
     $this->loadModel('Ticket');
     $this->loadModel('Track');
     $loggedUser = $this->Auth->user();
     $this->request->data['Transaction']['user_id'] = $loggedUser['id'];
     $creditCard->setCardNumber($data['card_no']);
     $creditCard->setExpirationDate($data['exp_date']);
     //    $creditCard->setCardNumber("4117733943147221"); // live
     // $creditCard->setExpirationDate("07-2019"); //live
     $creditCard->setcardCode($data['cvv_code']);
     //live
     $paymentOne = new AnetAPI\PaymentType();
     $paymentOne->setCreditCard($creditCard);
     //    Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($data['fname']);
     $billto->setLastName($data['lname']);
     $billto->setCompany($data['company']);
     //$billto->setAddress("14 Main Street");
     $billto->setAddress($data['address']);
     $billto->setCity($data['city']);
     $billto->setState($data['state']);
     $billto->setZip($data['zip_code']);
     $billto->setCountry($data['country']);
     $billto->setphoneNumber($data['phone']);
     $billto->setfaxNumber($data['fax']);
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($data['charge_amount']);
     // to do set amount from form
     $transactionRequestType->setPayment($paymentOne);
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     // $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
     $this->request->data['Transaction']['error_msg'] = '';
     $this->request->data['Transaction']['status'] = '';
     $this->request->data['Transaction']['trx_id'] = '';
     $this->request->data['Transaction']['auth_code'] = '';
     $this->request->data['Transaction']['package_customer_id'] = $data['cid'];
     $this->request->data['Transaction']['fname'] = $data['fname'];
     $this->request->data['Transaction']['lname'] = $data['lname'];
     $this->request->data['Transaction']['exp_date'] = $data['exp_date'];
     $this->request->data['Transaction']['address'] = $data['address'];
     $this->request->data['Transaction']['city'] = $data['city'];
     $this->request->data['Transaction']['state'] = $data['state'];
     $this->request->data['Transaction']['zip_code'] = $data['zip_code'];
     $this->request->data['Transaction']['phone'] = $data['phone'];
     $this->request->data['Transaction']['paid_amount'] = $data['charge_amount'];
     $this->request->data['Transaction']['card_no'] = $data['card_no'];
     $this->request->data['Transaction']['cvv_code'] = $data['cvv_code'];
     $this->request->data['Transaction']['fax'] = $data['fax'];
     if ($response != null) {
         $tresponse = $response->getTransactionResponse();
         // pr($tresponse ); exit;
         if ($tresponse != null && $tresponse->getResponseCode() == "1") {
             $this->request->data['Transaction']['status'] = 'success';
             $r_from = date('Y-m-d');
             $this->PackageCustomer->id = $data['cid'];
             $this->PackageCustomer->saveField("r_form", $r_from);
             $this->request->data['Transaction']['trx_id'] = $tresponse->getTransId();
             $this->request->data['Transaction']['auth_code'] = $tresponse->getAuthCode();
             $tdata['Ticket'] = array('content' => 'Transaction for ' . $data['fname'] . ' ' . $data['lname'] . ' successfull');
             $tickect = $this->Ticket->save($tdata);
             // Data save in Ticket
             $trackData['Track'] = array('package_customer_id' => $data['cid'], 'ticket_id' => $tickect['Ticket']['id'], 'status' => 'closed', 'forwarded_by' => $loggedUser['id']);
             $this->Track->save($trackData);
             $status = 1;
         } else {
             $this->request->data['Transaction']['paid_amount'] = 0;
             $this->request->data['Transaction']['status'] = 'error';
             $this->request->data['Transaction']['error_msg'] = "Charge Credit Card ERROR :  Invalid response";
             $tdata['Ticket'] = array('content' => 'Transaction for ' . $data['fname'] . ' ' . $data['lname'] . ' failed for Charge Credit Card ERROR');
             $tickect = $this->Ticket->save($tdata);
             // Data save in Ticket
             $trackData['Track'] = array('package_customer_id' => $cid, 'ticket_id' => $tickect['Ticket']['id'], 'status' => 'closed', 'forwarded_by' => $loggedUser['id']);
             $this->Track->save($trackData);
             $status = 0;
         }
     } else {
         $this->request->data['Transaction']['paid_amount'] = 0;
         $this->request->data['Transaction']['status'] = 'error';
         $this->request->data['Transaction']['error_msg'] = "Charge Credit card Null response returned";
         $tdata['Ticket'] = array('content' => 'Transaction for ' . $data['fname'] . ' ' . $data['lname'] . ' failed for Charge Credit card Null response');
         $tickect = $this->Ticket->save($tdata);
         // Data save in Ticket
         $trackData['Track'] = array('package_customer_id' => $cid, 'ticket_id' => $tickect['Ticket']['id'], 'status' => 'closed', 'forwarded_by' => $loggedUser['id']);
         $this->Track->save($trackData);
         $status = 0;
     }
     $this->Transaction->create();
     $this->Transaction->save($this->request->data['Transaction']);
     return $status;
     //$this->set(compact('msg'));
 }
 protected function processPayment(Application $app, $cardInfo, $amount, $user, $students, $bill_address)
 {
     define("AUTHORIZENET_LOG_FILE", "../authorize.net.log");
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     $merchantAuthentication->setName($app['authrize.net.name']);
     $merchantAuthentication->setTransactionKey($app['authrize.net.key']);
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $creditCard->setCardNumber($cardInfo->card_num);
     $creditCard->setExpirationDate($cardInfo->exp);
     $creditCard->setCardCode($cardInfo->code);
     $paymentOne = new AnetAPI\PaymentType();
     $paymentOne->setCreditCard($creditCard);
     // Order info
     // $order = new AnetAPI\OrderType();
     // $order->setInvoiceNumber($order->getInvoiceNumber());
     // $order->setDescription('Payment for '.implode(' ', $students));
     // Line Item Info
     // $lineitem = new AnetAPI\LineItemType();
     // $lineitem->setItemId("Shirts");
     // $lineitem->setName("item1");
     // $lineitem->setDescription("golf shirt");
     // $lineitem->setQuantity("1");
     // $lineitem->setUnitPrice(20.95);
     // $lineitem->setTaxable("Y");
     // Tax info
     // $tax =  new AnetAPI\ExtendedAmountType();
     // $tax->setName("level 2 tax name");
     // $tax->setAmount(4.50);
     // $tax->setDescription("level 2 tax");
     // Customer info
     $customer = new AnetAPI\CustomerDataType();
     $customer->setId($user->getUserId());
     $customer->setEmail($user->getEmail());
     // PO Number
     // $ponumber = "15";
     //Ship To Info
     // $shipto = new AnetAPI\NameAndAddressType();
     // $shipto->setFirstName("Bayles");
     // $shipto->setLastName("China");
     // $shipto->setCompany("Thyme for Tea");
     // $shipto->setAddress("12 Main Street");
     // $shipto->setCity("Pecan Springs");
     // $shipto->setState("TX");
     // $shipto->setZip("44628");
     // $shipto->setCountry("USA");
     // Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($user->getFirstName());
     $billto->setLastName($user->getLastName());
     $billto->setCompany("");
     $billto->setAddress($bill_address->getStreet());
     $billto->setCity($bill_address->getCity());
     $billto->setState($bill_address->getState());
     $billto->setZip($bill_address->getZip());
     $billto->setCountry("USA");
     //create a transaction
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($amount);
     $transactionRequestType->setPayment($paymentOne);
     // $transactionRequestType->setOrder($order);
     // $transactionRequestType->addToLineItems($lineitem);
     // $transactionRequestType->setTax($tax);
     // $transactionRequestType->setPoNumber($ponumber);
     $transactionRequestType->setCustomer($customer);
     $transactionRequestType->setBillTo($billto);
     // $transactionRequestType->setShipTo($shipto);
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     if (null != $response) {
         $tresponse = $response->getTransactionResponse();
         if ($tresponse != null && $tresponse->getResponseCode() == "1") {
             // return array(
             // "AUTH_CODE" => $tresponse->getAuthCode(),
             // "TRANS_ID" => $tresponse->getTransId()
             // );
             return array('approved' => true, 'data' => $tresponse);
         } else {
             return array('approved' => false, 'data' => $tresponse);
         }
     } else {
         return array('approved' => false, 'data' => null);
     }
 }
 public function process()
 {
     $this->layout = 'ajax';
     //        $this->loadModel('PaidCustomer');
     //        $sql = "SELECT name, transactionkey ,card_no, exp_date FROM paid_customers ";
     //        $cardinfo = $this->PaidCustomer->query($sql);
     //        // Common setup for API credentials
     //        $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     //        $merchantAuthentication->setName("95x9PuD6b2"); // testing mode
     //        //$merchantAuthentication->setName("42UHbr9Qa9B"); // live mode
     //        $merchantAuthentication->setTransactionKey("547z56Vcbs3Nz9R9");  // testing mode
     ////        $merchantAuthentication->setTransactionKey("6468X36RkrKGm3k6"); // live mode
     //        $refId = 'ref' . time();
     //
     //        // Create the payment data for a credit card
     //        $creditCard = new AnetAPI\CreditCardType();
     //        $creditCard->setCardNumber("4111111111111111"); // testing
     //        $creditCard->setExpirationDate("2038-12"); // testing
     //
     //      //  $creditCard->setCardNumber("4117733943147221"); // live
     //       // $creditCard->setExpirationDate("07-2019"); //live
     //        $paymentOne = new AnetAPI\PaymentType();
     //        $paymentOne->setCreditCard($creditCard);
     //
     //        // Order info
     //        $order = new AnetAPI\OrderType();
     //        $order->setInvoiceNumber("101");
     //        $order->setDescription("Golf Shirts");
     //
     //        // Line Item Info
     //        $lineitem = new AnetAPI\LineItemType();
     //        $lineitem->setItemId("Shirts");
     //        $lineitem->setName("item1");
     //        $lineitem->setDescription("golf shirt");
     //        $lineitem->setQuantity("1");
     //        $lineitem->setUnitPrice(1.00);
     //        $lineitem->setTaxable(false);
     //
     //        // Tax info
     ////        $tax = new AnetAPI\ExtendedAmountType();
     ////        $tax->setName("level 2 tax name");
     ////        $tax->setAmount(4.50);
     ////        $tax->setDescription("level 2 tax");
     //        // Customer info
     ////        $customer = new AnetAPI\CustomerDataType();
     ////        $customer->setId("15");
     ////        $customer->setEmail("*****@*****.**");
     //        // PO Number
     //        $ponumber = "15";
     //        //Ship To Info
     //        $shipto = new AnetAPI\NameAndAddressType();
     //        //$shipto->setFirstName("Bayles");
     //        // $shipto->setLastName("China");
     //        // $shipto->setCompany("Thyme for Tea");
     //        //  $shipto->setAddress("12 Main Street");
     //        // $shipto->setCity("Pecan Springs");
     //        //  $shipto->setState("TX");
     //        $shipto->setZip("11554");
     //        //  $shipto->setCountry("USA");
     //        // Bill To
     ////        $billto = new AnetAPI\CustomerAddressType();
     ////        $billto->setFirstName("Ellen");
     ////        $billto->setLastName("Johnson");
     ////        $billto->setCompany("Souveniropolis");
     ////        $billto->setAddress("14 Main Street");
     ////        $billto->setCity("Pecan Springs");
     ////        $billto->setState("TX");
     ////        $billto->setZip("44628");
     ////        $billto->setCountry("USA");
     //        //create a transaction
     //        $transactionRequestType = new AnetAPI\TransactionRequestType();
     //        $transactionRequestType->setTransactionType("authCaptureTransaction");
     //        $transactionRequestType->setAmount(1.00);
     ////        $transactionRequestType->setPayment($paymentOne);
     ////        $transactionRequestType->setOrder($order);
     ////        $transactionRequestType->addToLineItems($lineitem);
     ////        $transactionRequestType->setTax($tax);
     ////        $transactionRequestType->setPoNumber($ponumber);
     ////        $transactionRequestType->setCustomer($customer);
     ////        $transactionRequestType->setBillTo($billto);
     ////        $transactionRequestType->setShipTo($shipto);
     //
     //        $request = new AnetAPI\CreateTransactionRequest();
     //        $request->setMerchantAuthentication($merchantAuthentication);
     //        $request->setRefId($refId);
     //        $request->setTransactionRequest($transactionRequestType);
     //        $controller = new AnetController\CreateTransactionController($request);
     //        $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); //Testing
     //       // $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION); // live
     //
     //        pr($response);
     //        exit;
     //
     //        $msg = '';
     //        if ($response != null) {
     //            $tresponse = $response->getTransactionResponse();
     //
     //            if (($tresponse != null) && ($tresponse->getResponseCode() == "1")) {
     //                $msg = "Transaction Successful ! : " . "<br/>";
     //                $msg .= "Charge Credit Card AUTH CODE : " . $tresponse->getAuthCode() . "<br/>";
     //                $msg .= "Charge Credit Card TRANS ID  : " . $tresponse->getTransId() . "<br/>";
     //            } else {
     //                $msg = "Charge Credit Card ERROR :  Invalid response\n";
     //            }
     //        } else {
     //            $msg = "Charge Credit card Null response returned";
     //        }
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     // $merchantAuthentication->setName("95x9PuD6b2"); // testing mode
     $merchantAuthentication->setName("42UHbr9Qa9B");
     // live mode
     //$merchantAuthentication->setTransactionKey("547z56Vcbs3Nz9R9");  // testing mode
     $merchantAuthentication->setTransactionKey("6468X36RkrKGm3k6");
     // live mode
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $this->loadModel('PaidCustomer');
     $this->loadModel('Transaction');
     $pcustomers = $this->PaidCustomer->find('all');
     //        pr($pcustomers);
     //        exit;
     $msg = '<ul>';
     foreach ($pcustomers as $pcustomer) {
         $pc = $pcustomer['PaidCustomer'];
         $creditCard->setCardNumber($pc['card_no']);
         // testing
         $creditCard->setExpirationDate($pc['exp_date']);
         // testing
         //     $creditCard->setCardNumber("4117733943147221"); // live
         //  $creditCard->setExpirationDate("07-2019"); //live
         $paymentOne = new AnetAPI\PaymentType();
         $paymentOne->setCreditCard($creditCard);
         $transactionData['paid_customer_id'] = $pc['id'];
         //    Bill To
         $billto = new AnetAPI\CustomerAddressType();
         $billto->setFirstName($pc['fname']);
         $billto->setLastName($pc['lname']);
         // $billto->setCompany("Souveniropolis");
         //$billto->setAddress("14 Main Street");
         //$billto->setCity("Pecan Springs");
         //$billto->setState("TX");
         $billto->setZip($pc['zip_code']);
         //$billto->setCountry("USA");
         // Create a transaction
         $transactionRequestType = new AnetAPI\TransactionRequestType();
         $transactionRequestType->setTransactionType("authCaptureTransaction");
         $transactionRequestType->setAmount($pc['amount']);
         $transactionRequestType->setPayment($paymentOne);
         $request = new AnetAPI\CreateTransactionRequest();
         $request->setMerchantAuthentication($merchantAuthentication);
         $request->setRefId($refId);
         $request->setTransactionRequest($transactionRequestType);
         $controller = new AnetController\CreateTransactionController($request);
         //   $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); //Testing
         $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
         // live
         //  pr($response); exit;
         $transactionData['error_msg'] = '';
         $transactionData['status'] = '';
         $transactionData['trx_id'] = '';
         $transactionData['auth_code'] = '';
         if ($response != null) {
             $tresponse = $response->getTransactionResponse();
             // pr($tresponse ); exit;
             if ($tresponse != null && $tresponse->getResponseCode() == "1") {
                 $transactionData['status'] = 'success';
                 $transactionData['trx_id'] = $tresponse->getTransId();
                 $transactionData['auth_code'] = $tresponse->getAuthCode();
                 $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' successfull</li>';
             } else {
                 $transactionData['status'] = 'error';
                 $transactionData['error_msg'] = "Charge Credit Card ERROR :  Invalid response";
                 $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit Card ERROR</li>';
             }
         } else {
             $transactionData['status'] = 'error';
             $transactionData['error_msg'] = "Charge Credit card Null response returned";
             $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit card Null response</li>';
         }
         $this->Transaction->create();
         $this->Transaction->save($transactionData);
     }
     $msg .= '</ul>';
     $this->set(compact('msg'));
 }
<?php

require 'vendor/autoload.php';
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;
define("AUTHORIZENET_LOG_FILE", "phplog");
// Common setup for API credentials
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName("556KThWQ6vf2");
$merchantAuthentication->setTransactionKey("9ac2932kQ7kN2Wzq");
// An existing customer profile id for this merchant name and transaction key
$existingcustomerprofileid = "35872074";
// Create the customer shipping address
$customershippingaddress = new AnetAPI\CustomerAddressType();
$customershippingaddress->setFirstName("James");
$customershippingaddress->setLastName("White");
$customershippingaddress->setCompany("Addresses R Us");
$customershippingaddress->setAddress(rand() . " North Spring Street");
$customershippingaddress->setCity("Toms River");
$customershippingaddress->setState("NJ");
$customershippingaddress->setZip("08753");
$customershippingaddress->setCountry("USA");
$customershippingaddress->setPhoneNumber("000-000-0000");
$customershippingaddress->setFaxNumber("999-999-9999");
// Create a new customer shipping address for an existing customer profile
$request = new AnetAPI\CreateCustomerShippingAddressRequest();
$request->setMerchantAuthentication($merchantAuthentication);
$request->setCustomerProfileId($existingcustomerprofileid);
$request->setAddress($customershippingaddress);
$controller = new AnetController\CreateCustomerShippingAddressController($request);
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
$controller = new AnetController\GetCustomerProfileController($request);
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
if ($response != null && $response->getMessages()->getResultCode() == "Ok") {
    //   echo "SUCCESS: PROFILE RETRIEVED : " . $response->getProfile() . "\n";
    $getcustomerprofileid = $response->getProfile();
} else {
    echo "GetCustomerProfileRequest ERROR :  Invalid response\n";
}
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber("4012888818888");
$creditCard->setExpirationDate("2038-11");
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
// Create the Bill To info for new payment type
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName("Mrs Mary");
$billto->setLastName("Doe");
$billto->setCompany("My company");
$billto->setAddress("123 Main St.");
$billto->setCity("Bellevue");
$billto->setState("WA");
$billto->setZip("98004");
$billto->setPhoneNumber("000-000-0000");
$billto->setfaxNumber("999-999-9999");
$billto->setCountry("USA");
// Create a new Customer Payment Profile
$paymentprofile = new AnetAPI\CustomerPaymentProfileType();
$paymentprofile->setCustomerType('individual');
$paymentprofile->setBillTo($billto);
$paymentprofile->setPayment($paymentCreditCard);
Exemple #10
0
 function make_transaction2($post_order)
 {
     //echo "<pre>";
     //print_r($post_order);
     //echo "</pre><br>-------------------------------<br>";
     // Create the payment data for credit card
     $payment = $this->prepare_order($post_order);
     //$merchantAuthentication = $this->sandbox_authorize();
     $merchantAuthentication = $this->authorize();
     $refId = 'ref' . time();
     // Order info
     $invoiceNo = time();
     $order = new AnetAPI\OrderType();
     $order->setInvoiceNumber($invoiceNo);
     if ($order->group == 0) {
         $order->setDescription($post_order->item);
         $lineitem = new AnetAPI\LineItemType();
         $lineitem->setItemId(time());
         $lineitem->setName($post_order->item);
         $lineitem->setDescription($post_order->item);
         $lineitem->setQuantity("1");
         $lineitem->setUnitPrice($post_order->sum);
         $lineitem->setTaxable("N");
     } else {
         $order->setDescription($post_order->item);
         $lineitem = new AnetAPI\LineItemType();
         $lineitem->setItemId(time());
         $lineitem->setName("{$post_order->item}");
         $lineitem->setDescription($post_order->item);
         $lineitem->setQuantity("1");
         $lineitem->setUnitPrice($post_order->sum);
         $lineitem->setTaxable("N");
     }
     // end else
     // Customer info
     $custID = round(time() / 3785);
     $customer = new AnetAPI\CustomerDataType();
     $customer->setId($custID);
     $customer->setEmail($post_order->cds_email);
     $names = explode("/", $post_order->cds_name);
     $firstname = $names[0];
     $lastname = $names[1];
     //Ship To Info
     $shipto = new AnetAPI\NameAndAddressType();
     $shipto->setFirstName($firstname);
     $shipto->setLastName($lastname);
     $shipto->setCompany('Student');
     $shipto->setAddress($post_order->cds_address_1);
     $shipto->setCity($post_order->cds_city);
     $shipto->setState($post_order->cds_state);
     $shipto->setZip($post_order->cds_zip);
     $shipto->setCountry("USA");
     // Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($firstname);
     $billto->setLastName($lastname);
     $billto->setCompany("Student");
     $billto->setAddress($post_order->cds_address_1);
     $billto->setCity($post_order->cds_city);
     $billto->setState($post_order->cds_state);
     $billto->setZip($post_order->cds_zip);
     $billto->setCountry("USA");
     //create a transaction
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($post_order->sum);
     $transactionRequestType->setPayment($payment);
     $transactionRequestType->setOrder($order);
     $transactionRequestType->addToLineItems($lineitem);
     $transactionRequestType->setCustomer($customer);
     $transactionRequestType->setBillTo($billto);
     $transactionRequestType->setShipTo($shipto);
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     //$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
     //echo "--------Card payment response1 <pre>";
     //print_r($response);
     //echo "</pre><br>";
     if ($response != null) {
         $tresponse = $response->getTransactionResponse();
         //echo "--------Card payment response2 <pre>";
         //print_r($tresponse);
         //echo "</pre><br>";
         //die();
         if ($tresponse != null && $tresponse->getResponseCode() == "1") {
             //echo "Charge Credit Card AUTH CODE : " . $tresponse->getAuthCode() . "\n";
             //echo "Charge Credit Card TRANS ID  : " . $tresponse->getTransId() . "\n";
             $status = array('auth_code' => $tresponse->getAuthCode(), 'trans_id' => $tresponse->getTransId(), 'auth_code' => $tresponse->getResponseCode(), 'sum' => $post_order->sum);
             return $status;
         } else {
             $this->save_log($tresponse, $post_order);
             return false;
         }
     } else {
         //echo "Charge Credit card Null response returned";
         return false;
     }
 }
 public function individual_transaction($id = null)
 {
     $this->layout = 'ajax';
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     $merchantAuthentication->setName("95x9PuD6b2");
     // testing mode
     //$merchantAuthentication->setName("42UHbr9Qa9B"); // live mode
     $merchantAuthentication->setTransactionKey("547z56Vcbs3Nz9R9");
     // testing mode
     //$merchantAuthentication->setTransactionKey("6468X36RkrKGm3k6"); // live mode
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $this->loadModel('PaidCustomer');
     $this->loadModel('Transaction');
     $pcustomers = $this->PaidCustomer->find('first', array('conditions' => array('PaidCustomer.id' => $id)));
     //pr($pcustomers);
     //exit;
     $msg = '<ul>';
     //foreach ($pcustomers as $pcustomer):
     $pc = $pcustomers['PaidCustomer'];
     // pr($pc); exit;
     $creditCard->setCardNumber($pc['card_no']);
     // testing
     $creditCard->setExpirationDate($pc['exp_date']);
     // testing
     //     $creditCard->setCardNumber("4117733943147221"); // live
     //  $creditCard->setExpirationDate("07-2019"); //live
     $paymentOne = new AnetAPI\PaymentType();
     $paymentOne->setCreditCard($creditCard);
     $transactionData['paid_customer_id'] = $pc['id'];
     //    Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($pc['fname']);
     $billto->setLastName($pc['lname']);
     // $billto->setCompany("Souveniropolis");
     //$billto->setAddress("14 Main Street");
     //$billto->setCity("Pecan Springs");
     //$billto->setState("TX");
     $billto->setZip($pc['zip_code']);
     //$billto->setCountry("USA");
     // Create a transaction
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($pc['amount']);
     $transactionRequestType->setPayment($paymentOne);
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     //Testing
     //$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION); // live
     //  pr($response); exit;
     $transactionData['error_msg'] = '';
     $transactionData['status'] = '';
     $transactionData['trx_id'] = '';
     $transactionData['auth_code'] = '';
     if ($response != null) {
         $tresponse = $response->getTransactionResponse();
         // pr($tresponse ); exit;
         if ($tresponse != null && $tresponse->getResponseCode() == "1") {
             $transactionData['status'] = 'success';
             $transactionData['trx_id'] = $tresponse->getTransId();
             $transactionData['auth_code'] = $tresponse->getAuthCode();
             $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' successfull</li>';
         } else {
             $transactionData['status'] = 'error';
             $transactionData['error_msg'] = "Charge Credit Card ERROR :  Invalid response";
             $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit Card ERROR</li>';
         }
     } else {
         $transactionData['status'] = 'error';
         $transactionData['error_msg'] = "Charge Credit card Null response returned";
         $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit card Null response</li>';
     }
     $this->Transaction->create();
     $this->Transaction->save($transactionData);
     // endforeach;
     //$msg .='</ul>';
     $msg1 = '<div class="alert alert-success">
     <button type="button" class="close" data-dismiss="alert">&times;</button>
     <strong>' . $msg . '</strong>
 </div>';
     $this->Session->setFlash($msg1);
     return $this->redirect($this->referer());
     //$this->set(compact('msg'));
 }
$order->setDescription("Tennis Shirts");
// Add line items
$lineitem = new AnetAPI\LineItemType();
$lineitem->setItemId("Shirts");
$lineitem->setName("item2");
$lineitem->setDescription("tennis shirt");
$lineitem->setQuantity("1");
$lineitem->setUnitPrice(22.89);
$lineitem->setTaxable("Y");
// Add new tax info
$tax = new AnetAPI\ExtendedAmountType();
$tax->setName("level 2 tax name");
$tax->setAmount(6.5);
$tax->setDescription("level 2 tax");
// New Ship To
$shipto = new AnetAPI\CustomerAddressType();
$shipto->setFirstName("Mary");
$shipto->setLastName("Smith");
$shipto->setCompany("Tennis Shirts Are Us");
$shipto->setAddress("588 Willis Court");
$shipto->setCity("Pecan Springs");
$shipto->setState("TX");
$shipto->setZip("44628");
$shipto->setCountry("USA");
// Set a new bill to address
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName("Mary");
$billto->setLastName("Smith");
$billto->setCompany("Tennis Shirts Are Us");
$billto->setAddress("588 Willis Court");
$billto->setCity("Pecan Springs");
 $payment_amount = clean_input($_SESSION["Payment_Amount"]);
 //////////////////////// begin card charging process ////////////////////////////
 // Common setup for API credentials
 $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
 $merchantAuthentication->setName("{$anet_api_login_id}");
 $merchantAuthentication->setTransactionKey("{$anet_transaction_key}");
 $refId = 'ref' . time();
 // Create the payment data for a credit card
 $creditCard = new AnetAPI\CreditCardType();
 $creditCard->setCardNumber("{$cc_info_array['number']}");
 $creditCard->setExpirationDate("{$cc_info_array['exp_yr']}-{$cc_info_array['exp_mo']}");
 //$creditCard->setCardCode("{$cc_info_array['cvv']}");
 $paymentOne = new AnetAPI\PaymentType();
 $paymentOne->setCreditCard($creditCard);
 // Bill To
 $billto = new AnetAPI\CustomerAddressType();
 $billto->setFirstName("{$cc_info_array['name_first']}");
 $billto->setLastName("{$cc_info_array['name_last']}");
 $billto->setAddress("{$cc_info_array['address1']} {$cc_info_array['address2']}");
 $billto->setCity("{$cc_info_array['city']}");
 $billto->setState("{$cc_info_array['state']}");
 $billto->setZip("{$cc_info_array['pos_code']}");
 $billto->setCountry("USA");
 //create a transaction
 $transactionRequestType = new AnetAPI\TransactionRequestType();
 $transactionRequestType->setTransactionType("authCaptureTransaction");
 $transactionRequestType->setAmount($payment_amount);
 $transactionRequestType->setPayment($paymentOne);
 $transactionRequestType->setBillTo($billto);
 $request = new AnetAPI\CreateTransactionRequest();
 $request->setMerchantAuthentication($merchantAuthentication);
$controller = new AnetController\GetCustomerProfileController($request);
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
if ($response != null && $response->getMessages()->getResultCode() == "Ok") {
    //   echo "SUCCESS: PROFILE RETRIEVED : " . $response->getProfile() . "\n";
    $getcustomerprofileid = $response->getProfile();
} else {
    echo "GetCustomerProfileRequest ERROR :  Invalid response\n";
}
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber("4012888818888");
$creditCard->setExpirationDate("2038-11");
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
// Create the Bill To info for new payment type
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName("Jane");
$billto->setLastName("Doe");
$billto->setCompany("My company");
$billto->setAddress("588 Willis Ct");
$billto->setCity("Vacaville");
$billto->setState("CA");
$billto->setZip("95688");
$billto->setPhoneNumber("555-555-1212");
$billto->setfaxNumber("999-999-9999");
$billto->setCountry("USA");
// Create a new Customer Payment Profile
$paymentprofile = new AnetAPI\CustomerPaymentProfileExType();
$paymentprofile->setCustomerType('individual');
$paymentprofile->setBillTo($billto);
$paymentprofile->setPayment($paymentCreditCard);
 public function individual_transaction_by_card()
 {
     //  pr($this->request->data); exit;
     //Get ID and Input amount from edit_customer page
     $cid = $this->request->data['Transaction']['cid'];
     $this->request->data['Transaction']['package_customer_id'] = $cid;
     // pr($this->request->data); exit;
     $this->loadModel('PackageCustomer');
     $cinfo = $this->PackageCustomer->findById($cid);
     if (isset($cinfo['Psetting']['id'])) {
         $packagePrice = $cinfo['Psetting']['amount'];
     } else {
         $packagePrice = $cinfo['CustomPackage']['charge'];
     }
     $dateObj = $this->request->data['Transaction']['exp_date'];
     $this->request->data['Transaction']['exp_date'] = $dateObj['month'] . '/' . substr($dateObj['year'], -2);
     //pr($this->request->data['Transaction']);
     $this->layout = 'ajax';
     // Common setup for API credentials
     $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
     //   $merchantAuthentication->setName("95x9PuD6b2"); // testing mode
     $merchantAuthentication->setName("42UHbr9Qa9B");
     //42UHbr9Qa9B live mode
     // $merchantAuthentication->setTransactionKey("547z56Vcbs3Nz9R9");  // testing mode
     $merchantAuthentication->setTransactionKey("7UBSq68ncs65p8QX");
     // live mode 7UBSq68ncs65p8QX
     $refId = 'ref' . time();
     // Create the payment data for a credit card
     $creditCard = new AnetAPI\CreditCardType();
     $this->loadModel('PackageCustomer');
     $this->loadModel('Transaction');
     $this->loadModel('Ticket');
     $this->loadModel('Track');
     $this->Transaction->id = $this->request->data['Transaction']['id'];
     $loggedUser = $this->Auth->user();
     $this->request->data['Transaction']['user_id'] = $loggedUser['id'];
     $pcustomers = $this->PackageCustomer->find('first', array('conditions' => array('PackageCustomer.id' => $cid)));
     $msg = '<ul>';
     //foreach ($pcustomers as $pcustomer):
     $pc = $this->request->data['Transaction'];
     // pr($pc); exit;
     $creditCard->setCardNumber($pc['card_no']);
     $creditCard->setExpirationDate($pc['exp_date']);
     //     $creditCard->setCardNumber("4117733943147221"); // live
     //  $creditCard->setExpirationDate("07-2019"); //live
     $paymentOne = new AnetAPI\PaymentType();
     $paymentOne->setCreditCard($creditCard);
     //    Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($pc['fname']);
     $billto->setLastName($pc['lname']);
     // $billto->setCompany("Souveniropolis");
     //$billto->setAddress("14 Main Street");
     //$billto->setCity("Pecan Springs");
     //$billto->setState("TX");
     $billto->setZip($pc['zip_code']);
     //$billto->setCountry("USA");
     //        $customerProfile = new AnetAPI\createCustomerPaymentProfileRequest();
     //        $customerProfile->cardNumber($pc['card_no']);
     //        $customerProfile->billToFirstName($pc['fname']);
     //        $customerProfile->billToLastName($pc['lname']);
     //        $customerProfile->zip($pc['zip_code']);
     // Create a transaction
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($pc['paid_amount']);
     // to do set amount from form
     $transactionRequestType->setPayment($paymentOne);
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     // $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
     //  pr($response); exit;
     $this->request->data['Transaction']['error_msg'] = '';
     $this->request->data['Transaction']['status'] = '';
     $this->request->data['Transaction']['trx_id'] = '';
     $this->request->data['Transaction']['auth_code'] = '';
     if ($response != null) {
         $tresponse = $response->getTransactionResponse();
         // pr($tresponse ); exit;
         if ($tresponse != null && $tresponse->getResponseCode() == "1") {
             $this->request->data['Transaction']['status'] = 'success';
             $this->request->data['Transaction']['trx_id'] = $tresponse->getTransId();
             $this->request->data['Transaction']['auth_code'] = $tresponse->getAuthCode();
             $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' successfull</li>';
             $tdata['Ticket'] = array('content' => 'Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' successfull');
             $tickect = $this->Ticket->save($tdata);
             // Data save in Ticket
             $trackData['Track'] = array('package_customer_id' => $cid, 'ticket_id' => $tickect['Ticket']['id'], 'status' => 'closed', 'forwarded_by' => $loggedUser['id']);
             // INCREASE CHARGED AMOUNT IF TRANSACTION IS SUCCESSFUL
             $due = $packagePrice - $this->request->data['Transaction']['paid_amount'];
             $this->request->data['Transaction']['due'] = $due;
             // $this->PackageCustomer->id = $cid;
             //$data = $this->PackageCustomer->find('first', array('conditions' => array('PackageCustomer.id' => $cid)));
             // $present_due['PackageCustomer']['charge_amount'] = (float) $data['PackageCustomer']['charge_amount'] + (float) $charged_amount;
             //  $this->PackageCustomer->save($present_due);
             // $this->PackageCustomer->save($this->request->data['PackageCustomer']);
             //END OF DUE UPDATE
             $this->Track->save($trackData);
         } else {
             $this->request->data['Transaction']['paid_amount'] = 0;
             $this->request->data['Transaction']['status'] = 'unpaid';
             $this->request->data['Transaction']['error_msg'] = "Charge Credit Card ERROR :  Invalid response";
             $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit Card ERROR</li>';
             $tdata['Ticket'] = array('content' => 'Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit Card ERROR');
             $tickect = $this->Ticket->save($tdata);
             // Data save in Ticket
             $trackData['Track'] = array('package_customer_id' => $cid, 'ticket_id' => $tickect['Ticket']['id'], 'status' => 'open', 'forwarded_by' => $loggedUser['id']);
             $this->Track->save($trackData);
         }
     } else {
         $this->request->data['Transaction']['paid_amount'] = 0;
         $this->request->data['Transaction']['status'] = 'unpaid';
         $this->request->data['Transaction']['error_msg'] = "Charge Credit card Null response returned";
         $msg .= '<li> Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit card Null response</li>';
         $tdata['Ticket'] = array('content' => 'Transaction for ' . $pc['fname'] . ' ' . $pc['lname'] . ' failed for Charge Credit card Null response');
         $tickect = $this->Ticket->save($tdata);
         // Data save in Ticket
         $trackData['Track'] = array('package_customer_id' => $cid, 'ticket_id' => $tickect['Ticket']['id'], 'status' => 'open', 'forwarded_by' => $loggedUser['id']);
         $this->Track->save($trackData);
     }
     // pr($this->request->data); exit;
     $this->Transaction->save($this->request->data['Transaction']);
     // endforeach;
     //$msg .='</ul>';
     $transactionMsg = '<div class="alert alert-success">
     <button type="button" class="close" data-dismiss="alert">&times;</button>
     <strong>' . $msg . '</strong>
 </div>';
     $this->Session->setFlash($transactionMsg);
     return $this->redirect($this->referer());
     //$this->set(compact('msg'));
 }
Exemple #16
0
 function make_transaction($post_order)
 {
     //echo "<pre>";
     //print_r($post_order);
     //echo "</pre><br>";
     //die();
     $names = explode(" ", $post_order->cardholder);
     if (count($names) == 2) {
         $firstname = $names[0];
         $lastname = $names[1];
     }
     // end if
     if (count($names) == 3) {
         $firstname = $names[0] . " " . ($lastname = $names[1]);
         $lastname = $names[2];
     }
     // end if
     $payment = $this->prepare_order($post_order);
     $merchantAuthentication = $this->authorize();
     $refId = 'ref' . time();
     $state = $this->get_user_state($post_order->state);
     $invoiceNo = time();
     $order = new AnetAPI\OrderType();
     $order->setInvoiceNumber($invoiceNo);
     $order->setDescription($post_order->item);
     $lineitem = new AnetAPI\LineItemType();
     $lineitem->setItemId(time());
     $lineitem->setName($post_order->item);
     $lineitem->setDescription($post_order->item);
     $lineitem->setQuantity("1");
     $lineitem->setUnitPrice($post_order->amount);
     $lineitem->setTaxable("N");
     // Customer info
     $custID = round(time() / 3785);
     $customer = new AnetAPI\CustomerDataType();
     $customer->setId($custID);
     $customer->setEmail($post_order->email);
     //Ship To Info
     $address = (string) $post_order->street . " " . (string) $post_order->city . " " . $state;
     $shipto = new AnetAPI\NameAndAddressType();
     $shipto->setFirstName($firstname);
     $shipto->setLastName($lastname);
     $shipto->setCompany('Student');
     $shipto->setAddress($address);
     $shipto->setCity($post_order->city);
     $shipto->setState($state);
     $shipto->setZip($post_order->zip);
     $shipto->setCountry("USA");
     // Bill To
     $billto = new AnetAPI\CustomerAddressType();
     $billto->setFirstName($firstname);
     $billto->setLastName($lastname);
     $billto->setCompany("Student");
     $billto->setAddress($address);
     $billto->setCity($post_order->city);
     $billto->setState($state);
     $billto->setZip($post_order->zip);
     $billto->setCountry("USA");
     //create a transaction
     $transactionRequestType = new AnetAPI\TransactionRequestType();
     $transactionRequestType->setTransactionType("authCaptureTransaction");
     $transactionRequestType->setAmount($post_order->amount);
     $transactionRequestType->setPayment($payment);
     $transactionRequestType->setOrder($order);
     $transactionRequestType->addToLineItems($lineitem);
     $transactionRequestType->setCustomer($customer);
     $transactionRequestType->setBillTo($billto);
     $transactionRequestType->setShipTo($shipto);
     $request = new AnetAPI\CreateTransactionRequest();
     $request->setMerchantAuthentication($merchantAuthentication);
     $request->setRefId($refId);
     $request->setTransactionRequest($transactionRequestType);
     $controller = new AnetController\CreateTransactionController($request);
     $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
     //$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
     if ($response != null) {
         $tresponse = $response->getTransactionResponse();
         if ($tresponse != null && $tresponse->getResponseCode() == "1") {
             $userid = $this->get_user_id($post_order->email);
             if (!is_numeric($post_order->class)) {
                 //echo "Inside group name ...<br>";
                 $groupid = $this->get_group_id($post_order->class);
             } else {
                 //echo "Inside group id ...<br>";
                 $groupid = $post_order->class;
             }
             //echo "Group ID: ".$groupid."<br>";
             $status = new stdClass();
             $status->auth_code = $tresponse->getAuthCode();
             $status->trans_id = $tresponse->getTransId();
             $status->response_code = $tresponse->getResponseCode();
             $status->userid = $userid;
             $status->groupid = $groupid;
             $this->add_student_payment($post_order, $status);
             return true;
         } else {
             $this->save_log($tresponse);
             return false;
         }
     } else {
         //echo "Charge Credit card Null response returned";
         return false;
     }
 }