CreatePayment.php
<?php

CreatePaymentSample

//

This sample code demonstrate how you can process a direct credit card payment. Please note that direct credit card payment and related features using the REST API is restricted in some countries. API used: /v1/payments/payment

require __DIR__ . '/../bootstrap.php'; use PayPal\Api\Address; use PayPal\Api\Amount; use PayPal\Api\CreditCard; use PayPal\Api\Payer; use PayPal\Api\Payment; use PayPal\Api\FundingInstrument; use PayPal\Api\Transaction;

Address

[Optional] Billing address associated with card.

$addr = new Address(); $addr->setLine1("3909 Witmer Road") ->setLine2("Niagara Falls") ->setCity("Niagara Falls") ->setState("NY") ->setPostalCode("14305") ->setCountryCode("US") ->setPhone("716-298-1822");

CreditCard

A resource representing a credit card that can be used to fund a payment.

$card = new CreditCard(); $card->setType("visa") ->setNumber("4417119669820331") ->setExpireMonth("11") ->setExpireYear("2019") ->setCvv2("012") ->setFirstName("Joe") ->setLastName("Shopper") ->setBillingAddress($addr);

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));

Amount

Lets you specify a payment amount. You can also specify additional details such as shipping, tax.

$amount = new Amount(); $amount->setCurrency("USD") ->setTotal("1.00");

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) ->setDescription("Payment description");

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));

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 (PayPal\Exception\PPConnectionException $ex) { echo "Exception: " . $ex->getMessage() . PHP_EOL; var_dump($ex->getData()); exit(1); } ?> <html> <head> <title>Direct Credit card payments</title> </head> <body> <div> Created payment: <?php echo $payment->getId();?> </div> <pre><?php var_dump($payment->toArray());?></pre> <a href='../index.html'>Back</a> </body> </html>