payments/CreatePaymentUsingSavedCard.php
<?php

Create payment using a saved credit card

This sample code demonstrates how you can process a Payment using a previously stored credit card token. API used: /v1/payments/payment

require __DIR__ . '/../bootstrap.php'; use PayPal\Api\Amount; use PayPal\Api\Details; use PayPal\Api\Item; use PayPal\Api\ItemList; use PayPal\Api\CreditCardToken; use PayPal\Api\Payer; use PayPal\Api\Payment; use PayPal\Api\FundingInstrument; use PayPal\Api\Transaction;

Credit card token

Saved credit card id from a previous call to CreateCreditCard.php

$creditCardToken = new CreditCardToken(); $creditCardToken->setCreditCardId('CARD-29H07236G1554552FKINPBHQ');

FundingInstrument

A resource representing a Payer's funding instrument. For stored credit card payments, set the CreditCardToken field on this object.

$fi = new FundingInstrument(); $fi->setCreditCardToken($creditCardToken);

Payer

A resource representing a Payer that funds a payment For stored credit card payments, set payment method to 'credit_card'.

$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') ->setCurrency('USD') ->setQuantity(1) ->setPrice('7.50'); $item2 = new Item(); $item2->setName('Granola bars') ->setCurrency('USD') ->setQuantity(5) ->setPrice('2.00'); $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.20') ->setTax('1.30') ->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.00") ->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");

Payment

A Payment Resource; create one using the above types and intent set to 'sale'

$payment = new Payment(); $payment->setIntent("sale") ->setPayer($payer) ->setTransactions(array($transaction));

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.

try { $payment->create($apiContext); } catch (PayPal\Exception\PPConnectionException $ex) { echo "Exception: " . $ex->getMessage() . PHP_EOL; var_dump($ex->getData()); exit(1); } ?> <html> <head> <title>Saved Credit card payments</title> </head> <body> <div> Created payment: <?php echo $payment->getId();?> </div> <pre><?php echo $payment->toJSON(JSON_PRETTY_PRINT);?></pre> <a href='../index.html'>Back</a> </body> </html>