Example #1
0
 list($firstName, $lastName) = App\StringUtil::parseFullName($inputs['full-name']);
 $amount = doubleval($inputs['amount']);
 $currency = $inputs['currency'];
 $cardType = App\Payment\PaymentUtil::getCardType($inputs['credit-card-number']);
 if ($cardType == App\Payment\PaymentUtil::AMEX && $currency !== 'USD') {
     $app->flash('errors', array('Error, American Express card should be used only for USD. ' . $currency . ' was used instead.'));
     $app->redirect($app->urlFor('home'));
 }
 $dbFilePath = __DIR__ . '/db';
 $sqliteHelper = new App\SQLiteHelper($dbFilePath);
 switch ($currency) {
     case 'USD':
     case 'EUR':
     case 'AUD':
         $orderInfo = array(Paypal\PaypalAdapter::ORDER_FIRST_NAME => $firstName, Paypal\PaypalAdapter::ORDER_LAST_NAME => $lastName, Paypal\PaypalAdapter::ORDER_AMOUNT => $amount, Paypal\PaypalAdapter::ORDER_CURRENCY => $currency);
         list($cardFirstName, $cardLastName) = App\StringUtil::parseFullName($inputs['card-holder-name']);
         $creditCardNumber = $inputs['credit-card-number'];
         $expirationMonth = intval($inputs['expiration-date-month']);
         $expirationYear = intval($inputs['expiration-date-year']);
         $ccv = $inputs['ccv'];
         $creditInfo = array(Paypal\PaypalAdapter::CREDIT_CARD_NUMBER => $creditCardNumber, Paypal\PaypalAdapter::CARD_FIRST_NAME => $cardFirstName, Paypal\PaypalAdapter::CARD_LAST_NAME => $cardLastName, Paypal\PaypalAdapter::CARD_EXP_MONTH => $expirationMonth, Paypal\PaypalAdapter::CARD_EXP_YEAR => $expirationYear, Paypal\PaypalAdapter::CARD_CVV => $ccv);
         $paypalAdapter = new Paypal\PaypalAdapter(new Paypal\Paypal());
         $result = $paypalAdapter->pay(array($creditInfo, $orderInfo));
         // Save both success and failed results
         $response = print_r($result, true);
         $fullName = $firstName . ' ' . $lastName;
         $sqliteHelper->insert($fullName, $amount, $currency, $response);
         if ($result) {
             $amount = $result->getTransactions()[0]->getAmount()->total;
             $app->flash('success', "Successfully, {$cardFirstName} {$cardLastName} paid {$amount} {$currency} for {$firstName} {$lastName}.");
             $app->redirect($app->urlFor('home'));
 public function test_parse_fullname_without_space()
 {
     list($firstName, $lastName) = App\StringUtil::parseFullName($this->firstNameFig . $this->lastNameFig);
     $this->assertEquals($this->firstNameFig . $this->lastNameFig, $firstName);
     $this->assertEquals('', $lastName);
 }