setFundingInstruments() public method

List of funding instruments to fund the payment. 'OneOf' funding_instruments,funding_option_id to be used to identify the specifics of payment method passed.
public setFundingInstruments ( FundingInstrument[] $funding_instruments )
$funding_instruments FundingInstrument[]
Beispiel #1
0
 /**
  * Create a payment using a previously obtained
  * credit card id. The corresponding credit
  * card is used as the funding instrument.
  * 
  * @param string $creditCardId credit card id
  * @param string $total Payment amount with 2 decimal points
  * @param string $currency 3 letter ISO code for currency
  * @param string $paymentDesc
  */
 function makePaymentUsingCC($creditCardId, $total, $currency, $paymentDesc)
 {
     $ccToken = new CreditCardToken();
     $ccToken->setCreditCardId($creditCardId);
     $fi = new FundingInstrument();
     $fi->setCreditCardToken($ccToken);
     $payer = new Payer();
     $payer->setPaymentMethod("credit_card");
     $payer->setFundingInstruments(array($fi));
     // Specify the payment amount.
     $amount = new Amount();
     $amount->setCurrency($currency);
     $amount->setTotal($total);
     // ###Transaction
     // A transaction defines the contract of a
     // payment - what is the payment for and who
     // is fulfilling it. Transaction is created with
     // a `Payee` and `Amount` types
     $transaction = new Transaction();
     $transaction->setAmount($amount);
     $transaction->setDescription($paymentDesc);
     $payment = new Payment();
     $payment->setIntent("sale");
     $payment->setPayer($payer);
     $payment->setTransactions(array($transaction));
     $payment->create(new Paypalinit());
     return $payment;
 }
Beispiel #2
0
 public static function createPayer()
 {
     $payer = new Payer();
     $payer->setPaymentMethod(self::$paymentMethod);
     $payer->setPayerInfo(PayerInfoTest::createPayerInfo());
     $payer->setFundingInstruments(array(FundingInstrumentTest::createFundingInstrument()));
     return $payer;
 }
 /**
  * Creates a Payer object for given payment method and funding instrument
  *
  * @param string                 $paymentMethod
  * @param FundingInstrument|null $fundingInstrument
  *
  * @return Payer
  */
 protected function createPayer(string $paymentMethod, FundingInstrument $fundingInstrument = null) : Payer
 {
     $payer = new Payer();
     $payer->setPaymentMethod($paymentMethod);
     if (null !== $fundingInstrument) {
         $payer->setFundingInstruments([$fundingInstrument]);
     }
     return $payer;
 }
Beispiel #4
0
 public static function preparePayment($payment, $domain)
 {
     $items = array();
     $currency = null;
     $total = 0;
     foreach ($payment->items as $item) {
         $tmpItem = new PayPalItem();
         $tmpItem->setName($item->description)->setCurrency($item->currency)->setQuantity($item->quantity)->setSku($item->sku)->setPrice($item->price);
         $items[] = $tmpItem;
         //
         $total += (double) $item->price;
         $currency = $item->currency;
     }
     $itemList = new ItemList();
     $itemList->setItems($items);
     $payer = new PayPalPayer();
     switch ($payment->payer->paymentMethod) {
         case Payer::PAYMENT_CREDIT_CARD:
             $payer->setPaymentMethod($payment->payer->paymentMethod);
             $card = new PayPalCreditCard();
             $card->setType($payment->payer->creditCard->type)->setNumber($payment->payer->creditCard->number)->setExpireMonth($payment->payer->creditCard->expireMonth)->setExpireYear($payment->payer->creditCard->expireYear)->setCvv2($payment->payer->creditCard->cvv2)->setFirstName($payment->payer->creditCard->firstName)->setLastName($payment->payer->creditCard->lastName);
             $fi = new FundingInstrument();
             $fi->setCreditCard($card);
             $payer->setFundingInstruments(array($fi));
             break;
         case Payer::PAYMENT_PAYPAL:
             $payer->setPaymentMethod($payment->payer->paymentMethod);
             break;
     }
     $amount = new Amount();
     $amount->setCurrency($currency);
     $amount->setTotal($total);
     $transaction = new Transaction();
     $transaction->setAmount($amount)->setItemList($itemList)->setDescription($payment->description);
     $redirectUrls = new RedirectUrls();
     $redirectUrls->setReturnUrl($payment->returnUrl);
     $redirectUrls->setCancelUrl($payment->cancelUrl);
     $paypalPayment = new PayPalPayment();
     $paypalPayment->setRedirectUrls($redirectUrls);
     $paypalPayment->setIntent($payment->intent);
     $paypalPayment->setPayer($payer);
     $paypalPayment->setTransactions(array($transaction));
     try {
         $paypalPayment->create(static::getApiContext($domain));
         return static::getPayment($paypalPayment->getId(), $domain)->then(function ($payment) use($paypalPayment) {
             $payment->approvalUrl = static::getLink($paypalPayment->getLinks(), "approval_url");
             return $payment;
         });
     } catch (PayPalConnectionException $e) {
         return When::reject($e);
     } catch (PayPalInvalidCredentialException $e) {
         return When::reject($e);
     }
 }
Beispiel #5
0
 function paypal($data)
 {
     try {
         foreach ($data as $k => $v) {
             ${$k} = $v;
         }
         include_once 'config.paypal.php';
         $apiContext = new ApiContext(new OAuthTokenCredential(CLIENT_ID, CLIENT_SECRET));
         list($m, $y) = explode("/", $card_expiry);
         $card = new CreditCard();
         $card->setNumber($card_number);
         $card->setType(strtolower($card_type));
         $card->setExpireMonth($m);
         $card->setExpireYear($y);
         $card->setCvv2($card_cvv);
         $card->setFirstName($first_name);
         $card->setLastName($last_name);
         $fi = new FundingInstrument();
         $fi->setCreditCard($card);
         $payer = new Payer();
         $payer->setPaymentMethod('credit_card');
         $payer->setFundingInstruments(array($fi));
         $amount = new Amount();
         $amount->setCurrency($currency);
         $amount->setTotal($price);
         $transaction = new Transaction();
         $transaction->setAmount($amount);
         $transaction->setDescription('Enter your card details and proceed');
         $payment = new Payment();
         $payment->setIntent('sale');
         $payment->setPayer($payer);
         $payment->setTransactions(array($transaction));
         $res = json_decode($payment->create($apiContext));
         $this->save($data, __FUNCTION__, $res, 1);
         return json_encode(["status" => true, "msg" => sprintf("Your payment has been %s", $res->state)]);
     } catch (Exception $e) {
         if ($e instanceof PPConfigurationException) {
         } elseif ($e instanceof PPConnectionException) {
         } elseif ($e instanceof PayPal\Exception\PayPalConnectionException) {
             $res = json_decode($e->getData(), 1);
             $this->save($data, __FUNCTION__, $res, 0);
             $msg = array_shift(isset($res["details"]) ? $res["details"] : []);
             return json_encode(["status" => false, "msg" => $res["name"] == "UNKNOWN_ERROR" || empty($msg["issue"]) ? "An unknown error has occurred" : sprintf("%s %s", ["cvv2" => "CVV2", "expire_year" => "Card expiration", "credit_card" => "", "type" => "Invalid credit card number or", "number" => "Credit card number", "expire_month" => "Expiration month"][end(explode(".", $msg["field"]))], strtolower($msg["issue"]))]);
         } else {
             throw $e;
         }
     }
 }
Beispiel #6
0
 public static function createNewPayment()
 {
     $payer = new Payer();
     $payer->setPaymentMethod("credit_card");
     $payer->setFundingInstruments(array(FundingInstrumentTest::createFundingInstrument()));
     $transaction = new Transaction();
     $transaction->setAmount(AmountTest::createAmount());
     $transaction->setDescription("This is the payment description.");
     $redirectUrls = new RedirectUrls();
     $redirectUrls->setReturnUrl("http://localhost/return");
     $redirectUrls->setCancelUrl("http://localhost/cancel");
     $payment = new Payment();
     $payment->setIntent("sale");
     $payment->setRedirectUrls($redirectUrls);
     $payment->setPayer($payer);
     $payment->setTransactions(array($transaction));
     return $payment;
 }
Beispiel #7
0
 public function payDemo()
 {
     $this->authorize();
     $addr = new Address();
     $addr->setLine1('52 N Main ST');
     $addr->setCity('Johnstown');
     $addr->setCountryCode('US');
     $addr->setPostalCode('43210');
     $addr->setState('OH');
     $card = new CreditCard();
     $card->setNumber('4417119669820331');
     $card->setType('visa');
     $card->setExpireMonth('11');
     $card->setExpireYear('2018');
     $card->setCvv2('874');
     $card->setFirstName('Joe');
     $card->setLastName('Shopper');
     $card->setBillingAddress($addr);
     $fi = new FundingInstrument();
     $fi->setCreditCard($card);
     $payer = new Payer();
     $payer->setPaymentMethod('credit_card');
     $payer->setFundingInstruments(array($fi));
     $amountDetails = new \PayPal\Api\Details();
     $amountDetails->setSubtotal('7.41');
     $amountDetails->setTax('0.03');
     $amountDetails->setShipping('0.03');
     $amount = new Amount();
     $amount->setCurrency('USD');
     $amount->setTotal('7.47');
     $amount->setDetails($amountDetails);
     $transaction = new Transaction();
     $transaction->setAmount($amount);
     $transaction->setDescription('This is the payment transaction description.');
     $payment = new Payment();
     $payment->setIntent('sale');
     $payment->setPayer($payer);
     $payment->setTransactions(array($transaction));
     $payment->create($this->_apiContext);
 }
 public static function create($items, Details $shippingDetails, $paymentIntent, $paymentMethod, $fi = null)
 {
     $payer = new Payer();
     $payer->setPaymentMethod($paymentMethod);
     if ($fi !== null) {
         $payer->setFundingInstruments(array($fi));
     }
     $fullList = array();
     foreach ($items as $item) {
         if (!$item instanceof ItemInterface) {
             throw new Exception('All the item created for the payment MUST implement the ItemInterface');
         }
         $singleItem = new Item();
         $singleItem->setName($item->getName());
         $singleItem->setSku($item->getSku());
         $singleItem->setCurrency($item->getCurrency());
         $singleItem->setPrice($item->getPrice());
         $singleItem->setQuantity($item->getQuantity());
         $fullList[] = $singleItem;
     }
     $itemList = new ItemList();
     $itemList->setItems($fullList);
     $details = $shippingDetails;
     $subtotal = 0.0;
     /** @var Item $singleItem */
     foreach ($fullList as $singleItem) {
         $subtotal += floatval($singleItem->getPrice()) * floatval($singleItem->getQuantity());
     }
     $details->setSubtotal($subtotal);
     $total = $subtotal + floatval($details->getTax()) + floatval($details->getShipping());
     $currencyMode = Validation::currencyMode($items);
     $amount = new Amount();
     $amount->setCurrency($currencyMode)->setTotal($total)->setDetails($details);
     $transaction = new Transaction();
     $transaction->setAmount($amount)->setItemList($itemList);
     $payment = new Payment();
     $payment->setIntent($paymentIntent)->setPayer($payer)->setTransactions(array($transaction));
     return $payment;
 }
Beispiel #9
0
 public static function authorize()
 {
     $addr = new Address();
     $addr->setLine1("3909 Witmer Road");
     $addr->setLine2("Niagara Falls");
     $addr->setCity("Niagara Falls");
     $addr->setState("NY");
     $addr->setPostalCode("14305");
     $addr->setCountryCode("US");
     $addr->setPhone("716-298-1822");
     $card = new CreditCard();
     $card->setType("visa");
     $card->setNumber("4417119669820331");
     $card->setExpireMonth("11");
     $card->setExpireYear("2019");
     $card->setCvv2("012");
     $card->setFirstName("Joe");
     $card->setLastName("Shopper");
     $card->setBillingAddress($addr);
     $fi = new FundingInstrument();
     $fi->setCreditCard($card);
     $payer = new Payer();
     $payer->setPaymentMethod("credit_card");
     $payer->setFundingInstruments(array($fi));
     $amount = new Amount();
     $amount->setCurrency("USD");
     $amount->setTotal("1.00");
     $transaction = new Transaction();
     $transaction->setAmount($amount);
     $transaction->setDescription("This is the payment description.");
     $payment = new Payment();
     $payment->setIntent("authorize");
     $payment->setPayer($payer);
     $payment->setTransactions(array($transaction));
     $paymnt = $payment->create();
     $resArray = $paymnt->toArray();
     return $authId = $resArray['transactions'][0]['related_resources'][0]['authorization']['id'];
 }
$agreement = new Agreement();
$agreement->setName('DPRP')->setDescription('Payment with credit Card')->setStartDate('2015-06-17T9:45:04Z');
// Add Plan ID
// Please note that the plan Id should be only set in this case.
$plan = new Plan();
$plan->setId($createdPlan->getId());
$agreement->setPlan($plan);
// Add Payer
$payer = new Payer();
$payer->setPaymentMethod('credit_card')->setPayerInfo(new PayerInfo(array('email' => '*****@*****.**')));
// Add Credit Card to Funding Instruments
$creditCard = new CreditCard();
$creditCard->setType('visa')->setNumber('4491759698858890')->setExpireMonth('12')->setExpireYear('2017')->setCvv2('128');
$fundingInstrument = new FundingInstrument();
$fundingInstrument->setCreditCard($creditCard);
$payer->setFundingInstruments(array($fundingInstrument));
//Add Payer to Agreement
$agreement->setPayer($payer);
// Add Shipping Address
$shippingAddress = new ShippingAddress();
$shippingAddress->setLine1('111 First Street')->setCity('Saratoga')->setState('CA')->setPostalCode('95070')->setCountryCode('US');
$agreement->setShippingAddress($shippingAddress);
// For Sample Purposes Only.
$request = clone $agreement;
// ### Create Agreement
try {
    // Please note that as the agreement has not yet activated, we wont be receiving the ID just yet.
    $agreement = $agreement->create($apiContext);
} catch (Exception $ex) {
    ResultPrinter::printError("Created Billing Agreement.", "Agreement", $agreement->getId(), $request, $ex);
    exit(1);
Beispiel #11
0
 public function createBillingAgreement($planId, $shippingAddress, $billingAddress, $productName, $cartSummary, $cardDetails, $apiContext)
 {
     $billingPlanDefaultValues = $this->getBillingPlanDefaultValues();
     $billingAgreement = new Agreement();
     $billingAgreement->setName('Billing Agreement For ' . $productName);
     $billingAgreement->setDescription($cartSummary->paymentPlanTitle);
     $startDate = new Zend_Date();
     $startDate->addDay($billingPlanDefaultValues->startDateInterval);
     $billingAgreement->setStartDate($startDate->get(Zend_Date::ISO_8601));
     $payerInfo = new PayerInfo();
     $payerInfo->setFirstName($billingAddress->firstname);
     $payerInfo->setLastName($billingAddress->lastname);
     $payerInfo->setEmail($billingAddress->emailAddress);
     /* Fields not supported yet */
     //$payerInfo->setEmail($cart->address->billing['billing_email']);
     //$payerInfo->setPhone($cart->address->billing['billing_contactNo']);
     /* Get a MALFORMED_REQUEST error when using this field */
     //$payerInfo->setCountryCode($cart->address->billing['billing_countryCode']);
     $cardName = $cardDetails->cardName;
     $cardNumber = $cardDetails->cardNumber;
     $cardType = strtolower($cardDetails->cardType);
     $cardExpiryMonth = $cardDetails->cardExpiryMonth;
     $cardExpiryYear = $cardDetails->cardExpiryYear;
     $cardSecurityCode = $cardDetails->cardSecurityCode;
     $nameParser = new Om_Model_Name();
     $name = $nameParser->parse_name($cardName);
     $card = new CreditCard();
     $card->setType($cardType);
     $card->setNumber($cardNumber);
     $card->setExpireMonth($cardExpiryMonth);
     $card->setExpireYear($cardExpiryYear);
     $card->setCvv2($cardSecurityCode);
     $card->setFirstName($name['fname']);
     $card->setLastName($name['lname']);
     $fundingInstrument = new FundingInstrument();
     $fundingInstrument->setCreditCard($card);
     $payer = new Payer();
     $payer->setPaymentMethod("credit_card");
     $payer->setFundingInstruments(array($fundingInstrument));
     $payer->setPayerInfo($payerInfo);
     $billingAgreement->setPayer($payer);
     $shippingAddressPayPal = new Address();
     $shippingAddressPayPal->setLine1($shippingAddress->addressLine1);
     $shippingAddressPayPal->setLine2($shippingAddress->addressLine2 . ' ' . $shippingAddress->addressLine3);
     $shippingAddressPayPal->setCity($shippingAddress->city);
     $shippingAddressPayPal->setCountryCode($shippingAddress->getCountry()->code);
     $shippingAddressPayPal->setPostalCode($shippingAddress->postcode);
     $shippingAddressPayPal->setState($shippingAddress->county);
     $shippingAddressPayPal->setPhone($shippingAddress->contactNumber);
     $billingAgreement->setShippingAddress($shippingAddressPayPal);
     $plan = new Plan();
     $plan->setId($planId);
     $billingAgreement->setPlan($plan);
     return $billingAgreement->create($apiContext);
 }
 public function teszt($amount, $description)
 {
     $apiContext = new \PayPal\Rest\ApiContext(new \PayPal\Auth\OAuthTokenCredential('AfikH2WfU1x0YF1ThuSkBaMKqDh-rxE5NEBpLWOF3UVmii-P97WdgJCUhoH1ff5pMHToHnB-sXoejgGv', 'EM7ObD_onQ1EqaeiVBFvSId9AIQevTlsYcLPi-3SeVivyQ9A361Ov5jx4KlFkamOsh_c6I25VM1Ck4ZX'));
     //SAMPLE 1
     // $card = new CreditCard();
     // $card->setType("visa")
     //     ->setNumber("4148529247832259")
     //     ->setExpireMonth("11")
     //     ->setExpireYear("2019")
     //     ->setCvv2("012")
     //     ->setFirstName("Joe")
     //     ->setLastName("Shopper");
     // // ### FundingInstrument
     // // A resource representing a Payer's funding instrument.
     // // For direct credit card payments, set the CreditCard
     // // field on this object.
     // $fi = new FundingInstrument();
     // $fi->setCreditCard($card);
     // // ### Payer
     // // A resource representing a Payer that funds a payment
     // // For direct credit card payments, set payment method
     // // to 'credit_card' and add an array of funding instruments.
     // $payer = new Payer();
     // $payer->setPaymentMethod("credit_card")
     //     ->setFundingInstruments(array($fi));
     // // ### Itemized information
     // // (Optional) Lets you specify item wise
     // // information
     // $item1 = new Item();
     // $item1->setName('Ground Coffee 40 oz')
     //     ->setDescription('Ground Coffee 40 oz')
     //     ->setCurrency('USD')
     //     ->setQuantity(1)
     //     ->setTax(0.3)
     //     ->setPrice(7.50);
     // $item2 = new Item();
     // $item2->setName('Granola bars')
     //     ->setDescription('Granola Bars with Peanuts')
     //     ->setCurrency('USD')
     //     ->setQuantity(5)
     //     ->setTax(0.2)
     //     ->setPrice(2);
     // $itemList = new ItemList();
     // $itemList->setItems(array($item1, $item2));
     // // ### Additional payment details
     // // Use this optional field to set additional
     // // payment information such as tax, shipping
     // // charges etc.
     // $details = new Details();
     // $details->setShipping(1.2)
     //     ->setTax(1.3)
     //     ->setSubtotal(17.5);
     // // ### Amount
     // // Lets you specify a payment amount.
     // // You can also specify additional details
     // // such as shipping, tax.
     // $amount = new Amount();
     // $amount->setCurrency("USD")
     //     ->setTotal(20)
     //     ->setDetails($details);
     // // ### Transaction
     // // A transaction defines the contract of a
     // // payment - what is the payment for and who
     // // is fulfilling it.
     // $transaction = new Transaction();
     // $transaction->setAmount($amount)
     //     ->setItemList($itemList)
     //     ->setDescription("Payment description")
     //     ->setInvoiceNumber(uniqid());
     // // ### Payment
     // // A Payment Resource; create one using
     // // the above types and intent set to sale 'sale'
     // $payment = new Payment();
     // $payment->setIntent("sale")
     //     ->setPayer($payer)
     //     ->setTransactions(array($transaction));
     // // For Sample Purposes Only.
     // $request = clone $payment;
     // // ### Create Payment
     // // Create a payment by calling the payment->create() method
     // // with a valid ApiContext (See bootstrap.php for more on `ApiContext`)
     // // The return object contains the state.
     // try {
     //     $payment->create($apiContext);
     // } catch (Exception $ex) {
     //    // ResultPrinter::printError('Create Payment Using Credit Card. If 500 Exception, try creating a new Credit Card using <a href="https://ppmts.custhelp.com/app/answers/detail/a_id/750">Step 4, on this link</a>, and using it.', 'Payment', null, $request, $ex);
     //     exit(1);
     // }
     //ResultPrinter::printResult('Create Payment Using Credit Card', 'Payment', $payment->getId(), $request, $payment);
     //return $payment;
     //END SAMPLE 1
     //SAMPLE 2
     // $creditCard = new \PayPal\Api\CreditCard();
     // $creditCard->setType("visa")
     //     ->setNumber("4417119669820331")
     //     ->setExpireMonth("11")
     //     ->setExpireYear("2019")
     //     ->setCvv2("012")
     //     ->setFirstName("Joe")
     //     ->setLastName("Shopper");
     // try {
     //     $creditCard->create($apiContext);
     //     echo '<pre>';
     //     print_r($creditCard);
     // }
     // catch (\PayPal\Exception\PayPalConnectionException $ex) {
     //     echo $ex;
     // }
     //END SAMPLE 2
     //SAMPLE 3
     $payer = new Payer();
     $payer->setPaymentMethod("paypal");
     // ### Itemized information
     // (Optional) Lets you specify item wise
     // information
     $item1 = new Item();
     $item1->setName('Ground Coffee 40 oz')->setCurrency('USD')->setQuantity(1)->setPrice(7.5);
     $item2 = new Item();
     $item2->setName('Granola bars')->setCurrency('USD')->setQuantity(5)->setPrice(2);
     $itemList = new ItemList();
     $itemList->setItems(array($item1, $item2));
     // ### Additional payment details
     // Use this optional field to set additional
     // payment information such as tax, shipping
     // charges etc.
     /* $details = new Details();
     $details->setShipping(1.2)
         ->setTax(1.3)
         ->setSubtotal(17.50); */
     // ### Amount
     // Lets you specify a payment amount.
     // You can also specify additional details
     // such as shipping, tax.
     /* $amount = new Amount();
     $amount->setCurrency("USD")
         ->setTotal(20)
         ->setDetails($details); */
     // ### Transaction
     // A transaction defines the contract of a
     // payment - what is the payment for and who
     // is fulfilling it.
     $transaction = new Transaction();
     $transaction->setAmount($amount)->setItemList($itemList)->setDescription("Payment description");
     // ->setInvoiceNumber('134');
     //>setInvoiceNumber(uniqid());
     // ### Redirect urls
     // Set the urls that the buyer must be redirected to after
     // payment approval/ cancellation.
     //$baseUrl = getBaseUrl();
     $redirectUrls = new RedirectUrls();
     $redirectUrls->setReturnUrl("http://localhost/yii-application/frontend/web/index.php?r=/cart/default/ordered")->setCancelUrl("http://localhost/yii-application/frontend/web/index.php?r=/cart/default/index");
     // ### Payment
     // A Payment Resource; create one using
     // the above types and intent set to 'sale'
     /* $payment = new Payment();
     $payment->setIntent("sale")
         ->setPayer($payer)
         ->setRedirectUrls($redirectUrls)
         ->setTransactions(array($transaction)); */
     $addr = new Address();
     $addr->setLine1('52 N Main ST');
     $addr->setCity('Johnstown');
     $addr->setCountryCode('US');
     $addr->setPostalCode('43210');
     $addr->setState('OH');
     $card = new CreditCard();
     $card->setNumber('5110929378020149');
     $card->setType('MASTERCARD');
     $card->setExpireMonth('08');
     $card->setExpireYear('2020');
     $card->setCvv2('874');
     $card->setFirstName('Nishanth');
     $card->setLastName('Pininti');
     $card->setBillingAddress($addr);
     $fi = new FundingInstrument();
     $fi->setCreditCard($card);
     $payer = new Payer();
     $payer->setPaymentMethod('credit_card');
     $payer->setFundingInstruments(array($fi));
     $amountDetails = new \PayPal\Api\Details();
     $amountDetails->setSubtotal('7.41');
     $amountDetails->setTax('0.03');
     $amountDetails->setShipping('0.03');
     $amount = new Amount();
     $amount->setCurrency('USD');
     $amount->setTotal('7.47');
     $amount->setDetails($amountDetails);
     $transaction = new Transaction();
     $transaction->setAmount($amount);
     $transaction->setDescription('This is the payment transaction description.');
     $payment = new Payment();
     $payment->setIntent('sale');
     $payment->setPayer($payer);
     $payment->setTransactions(array($transaction));
     // For Sample Purposes Only.
     $request = clone $payment;
     // ### Create Payment
     // Create a payment by calling the 'create' method
     // passing it a valid apiContext.
     // (See bootstrap.php for more on `ApiContext`)
     // The return object contains the state and the
     // url to which the buyer must be redirected to
     // for payment approval
     try {
         $payment->create($apiContext);
     } catch (Exception $ex) {
         ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex);
         exit(1);
     }
     // ### Get redirect url
     // The API response provides the url that you must redirect
     // the buyer to. Retrieve the url from the $payment->getApprovalLink()
     // method
     //$approvalUrl = $payment->getRedirectUrls();
     // ResultPrinter::printResult("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", "<a href='$approvalUrl' >$approvalUrl</a>", $request, $payment);
     var_dump($payment);
     return $payment;
     //END SAMPLE 3
 }
Beispiel #13
0
 /**
  * Runs a card payment with PayPal
  *
  * @link https://devtools-paypal.com/guide/pay_creditcard/php?interactive=ON&env=sandbox
  * @return PayPal\Api\Payment 
  */
 public function payCard($cardInfo = [], $sum = 0, $message = '')
 {
     $card = new CreditCard();
     $card->setType($cardInfo['cardType']);
     $card->setNumber($cardInfo['cardNumber']);
     $card->setExpireMonth($cardInfo['expMonth']);
     $card->setExpireYear($cardInfo['expYear']);
     $card->setFirstName($cardInfo['firstName']);
     $card->setLastName($cardInfo['lastName']);
     $fundingInstrument = new FundingInstrument();
     $fundingInstrument->setCreditCard($card);
     $payer = new Payer();
     $payer->setPaymentMethod('credit_card');
     $payer->setFundingInstruments(array($fundingInstrument));
     $amount = new Amount();
     $amount->setCurrency($this->currency);
     $amount->setTotal($sum);
     $transaction = new Transaction();
     $transaction->setAmount($amount);
     if ($message) {
         $transaction->setDescription($message);
     }
     $payment = new Payment();
     $payment->setIntent('sale');
     $payment->setPayer($payer);
     $payment->setTransactions(array($transaction));
     return $payment->create($this->_apiContext);
     // get state from this json
 }