Merge branch 'dynamicconfig'

This commit is contained in:
aydiv
2013-04-26 16:42:04 +05:30
62 changed files with 1667 additions and 1797 deletions

View File

@@ -1,6 +1,12 @@
CHANGELOG CHANGELOG
========= =========
V0.6.0 (April 26, 2013)
-----------------------
* Adding support for dynamic configuration of SDK (Upgrading sdk-core-php dependency to V1.4.0)
* Deprecating the setCredential method and changing resource class methods to take an ApiContext argument instead of a OauthTokenCredential argument.
V0.5.0 (March 07, 2013) V0.5.0 (March 07, 2013)
----------------------- -----------------------

View File

@@ -1,4 +1,4 @@
REST API SDK for PHP (V0.5.0) [![Build Status](https://travis-ci.org/paypal/rest-api-sdk-php.png?branch=master)](https://travis-ci.org/paypal/rest-api-sdk-php) REST API SDK for PHP (V0.6.0) [![Build Status](https://travis-ci.org/paypal/rest-api-sdk-php.png?branch=master)](https://travis-ci.org/paypal/rest-api-sdk-php)
============================== ==============================
This repository contains PayPal's PHP SDK and samples for REST API. This repository contains PayPal's PHP SDK and samples for REST API.

View File

@@ -15,7 +15,7 @@
"php": ">=5.3.0", "php": ">=5.3.0",
"ext-curl": "*", "ext-curl": "*",
"ext-json": "*", "ext-json": "*",
"paypal/sdk-core-php": "1.2.*" "paypal/sdk-core-php": "1.4.*"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "3.7.*" "phpunit/phpunit": "3.7.*"

View File

@@ -18,6 +18,7 @@ class Address extends Resource {
/** /**
* Getter for line1 * Getter for line1
* @return string
*/ */
public function getLine1() { public function getLine1() {
return $this->line1; return $this->line1;
@@ -33,6 +34,7 @@ class Address extends Resource {
/** /**
* Getter for line2 * Getter for line2
* @return string
*/ */
public function getLine2() { public function getLine2() {
return $this->line2; return $this->line2;
@@ -48,6 +50,7 @@ class Address extends Resource {
/** /**
* Getter for city * Getter for city
* @return string
*/ */
public function getCity() { public function getCity() {
return $this->city; return $this->city;
@@ -63,6 +66,7 @@ class Address extends Resource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -78,6 +82,7 @@ class Address extends Resource {
/** /**
* Getter for postal_code * Getter for postal_code
* @return string
*/ */
public function getPostal_code() { public function getPostal_code() {
return $this->postal_code; return $this->postal_code;
@@ -93,6 +98,7 @@ class Address extends Resource {
/** /**
* Getter for country_code * Getter for country_code
* @return string
*/ */
public function getCountry_code() { public function getCountry_code() {
return $this->country_code; return $this->country_code;
@@ -108,6 +114,7 @@ class Address extends Resource {
/** /**
* Getter for type * Getter for type
* @return string
*/ */
public function getType() { public function getType() {
return $this->type; return $this->type;
@@ -123,6 +130,7 @@ class Address extends Resource {
/** /**
* Getter for phone * Getter for phone
* @return string
*/ */
public function getPhone() { public function getPhone() {
return $this->phone; return $this->phone;

View File

@@ -18,6 +18,7 @@ class Amount extends Resource {
/** /**
* Getter for total * Getter for total
* @return string
*/ */
public function getTotal() { public function getTotal() {
return $this->total; return $this->total;
@@ -33,6 +34,7 @@ class Amount extends Resource {
/** /**
* Getter for currency * Getter for currency
* @return string
*/ */
public function getCurrency() { public function getCurrency() {
return $this->currency; return $this->currency;
@@ -48,6 +50,7 @@ class Amount extends Resource {
/** /**
* Getter for details * Getter for details
* @return PayPal\Api\AmountDetails
*/ */
public function getDetails() { public function getDetails() {
return $this->details; return $this->details;

View File

@@ -18,6 +18,7 @@ class AmountDetails extends Resource {
/** /**
* Getter for subtotal * Getter for subtotal
* @return string
*/ */
public function getSubtotal() { public function getSubtotal() {
return $this->subtotal; return $this->subtotal;
@@ -33,6 +34,7 @@ class AmountDetails extends Resource {
/** /**
* Getter for tax * Getter for tax
* @return string
*/ */
public function getTax() { public function getTax() {
return $this->tax; return $this->tax;
@@ -48,6 +50,7 @@ class AmountDetails extends Resource {
/** /**
* Getter for shipping * Getter for shipping
* @return string
*/ */
public function getShipping() { public function getShipping() {
return $this->shipping; return $this->shipping;
@@ -63,6 +66,7 @@ class AmountDetails extends Resource {
/** /**
* Getter for fee * Getter for fee
* @return string
*/ */
public function getFee() { public function getFee() {
return $this->fee; return $this->fee;

View File

@@ -18,6 +18,7 @@ class Authorization extends Resource {
/** /**
* Getter for id * Getter for id
* @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
@@ -33,6 +34,7 @@ class Authorization extends Resource {
/** /**
* Getter for create_time * Getter for create_time
* @return string
*/ */
public function getCreate_time() { public function getCreate_time() {
return $this->create_time; return $this->create_time;
@@ -48,6 +50,7 @@ class Authorization extends Resource {
/** /**
* Getter for update_time * Getter for update_time
* @return string
*/ */
public function getUpdate_time() { public function getUpdate_time() {
return $this->update_time; return $this->update_time;
@@ -63,6 +66,7 @@ class Authorization extends Resource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -78,6 +82,7 @@ class Authorization extends Resource {
/** /**
* Getter for amount * Getter for amount
* @return PayPal\Api\Amount
*/ */
public function getAmount() { public function getAmount() {
return $this->amount; return $this->amount;
@@ -93,6 +98,7 @@ class Authorization extends Resource {
/** /**
* Getter for parent_payment * Getter for parent_payment
* @return string
*/ */
public function getParent_payment() { public function getParent_payment() {
return $this->parent_payment; return $this->parent_payment;
@@ -108,6 +114,7 @@ class Authorization extends Resource {
/** /**
* Getter for links * Getter for links
* @return PayPal\Api\Link
*/ */
public function getLinks() { public function getLinks() {
return $this->links; return $this->links;

View File

@@ -18,6 +18,7 @@ class Capture extends Resource {
/** /**
* Getter for id * Getter for id
* @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
@@ -33,6 +34,7 @@ class Capture extends Resource {
/** /**
* Getter for create_time * Getter for create_time
* @return string
*/ */
public function getCreate_time() { public function getCreate_time() {
return $this->create_time; return $this->create_time;
@@ -48,6 +50,7 @@ class Capture extends Resource {
/** /**
* Getter for update_time * Getter for update_time
* @return string
*/ */
public function getUpdate_time() { public function getUpdate_time() {
return $this->update_time; return $this->update_time;
@@ -63,6 +66,7 @@ class Capture extends Resource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -78,6 +82,7 @@ class Capture extends Resource {
/** /**
* Getter for amount * Getter for amount
* @return PayPal\Api\Amount
*/ */
public function getAmount() { public function getAmount() {
return $this->amount; return $this->amount;
@@ -93,6 +98,7 @@ class Capture extends Resource {
/** /**
* Getter for parent_payment * Getter for parent_payment
* @return string
*/ */
public function getParent_payment() { public function getParent_payment() {
return $this->parent_payment; return $this->parent_payment;
@@ -108,6 +114,7 @@ class Capture extends Resource {
/** /**
* Getter for authorization_id * Getter for authorization_id
* @return string
*/ */
public function getAuthorization_id() { public function getAuthorization_id() {
return $this->authorization_id; return $this->authorization_id;
@@ -123,6 +130,7 @@ class Capture extends Resource {
/** /**
* Getter for description * Getter for description
* @return string
*/ */
public function getDescription() { public function getDescription() {
return $this->description; return $this->description;
@@ -138,6 +146,7 @@ class Capture extends Resource {
/** /**
* Getter for links * Getter for links
* @return PayPal\Api\Link
*/ */
public function getLinks() { public function getLinks() {
return $this->links; return $this->links;

View File

@@ -12,6 +12,10 @@ class CreditCard extends Resource implements IResource {
private static $credential; private static $credential;
/**
*
* @deprected. Pass ApiContext to create/get methods instead
*/
public static function setCredential($credential) { public static function setCredential($credential) {
self::$credential = $credential; self::$credential = $credential;
} }
@@ -26,6 +30,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for id * Getter for id
* @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
@@ -41,6 +46,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for valid_until * Getter for valid_until
* @return string
*/ */
public function getValid_until() { public function getValid_until() {
return $this->valid_until; return $this->valid_until;
@@ -56,6 +62,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -71,6 +78,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for payer_id * Getter for payer_id
* @return string
*/ */
public function getPayer_id() { public function getPayer_id() {
return $this->payer_id; return $this->payer_id;
@@ -86,6 +94,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for type * Getter for type
* @return string
*/ */
public function getType() { public function getType() {
return $this->type; return $this->type;
@@ -101,6 +110,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for number * Getter for number
* @return string
*/ */
public function getNumber() { public function getNumber() {
return $this->number; return $this->number;
@@ -116,6 +126,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for expire_month * Getter for expire_month
* @return string
*/ */
public function getExpire_month() { public function getExpire_month() {
return $this->expire_month; return $this->expire_month;
@@ -131,6 +142,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for expire_year * Getter for expire_year
* @return string
*/ */
public function getExpire_year() { public function getExpire_year() {
return $this->expire_year; return $this->expire_year;
@@ -146,6 +158,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for cvv2 * Getter for cvv2
* @return string
*/ */
public function getCvv2() { public function getCvv2() {
return $this->cvv2; return $this->cvv2;
@@ -161,6 +174,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for first_name * Getter for first_name
* @return string
*/ */
public function getFirst_name() { public function getFirst_name() {
return $this->first_name; return $this->first_name;
@@ -176,6 +190,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for last_name * Getter for last_name
* @return string
*/ */
public function getLast_name() { public function getLast_name() {
return $this->last_name; return $this->last_name;
@@ -191,6 +206,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for billing_address * Getter for billing_address
* @return PayPal\Api\Address
*/ */
public function getBilling_address() { public function getBilling_address() {
return $this->billing_address; return $this->billing_address;
@@ -206,6 +222,7 @@ class CreditCard extends Resource implements IResource {
/** /**
* Getter for links * Getter for links
* @return PayPal\Api\Link
*/ */
public function getLinks() { public function getLinks() {
return $this->links; return $this->links;
@@ -224,8 +241,10 @@ class CreditCard extends Resource implements IResource {
if($apiContext == null) { if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $apiContext = new ApiContext(self::$credential);
} }
$call = new Call(); $call = new \PPRestCall($apiContext);
$json = $call->execute("/v1/vault/credit-card", "POST", $payLoad, $apiContext); $json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/vault/credit-card",
"POST", $payLoad);
$this->fromJson($json); $this->fromJson($json);
return $this; return $this;
} }
@@ -234,15 +253,20 @@ class CreditCard extends Resource implements IResource {
* @path /v1/vault/credit-card/:credit-card-id * @path /v1/vault/credit-card/:credit-card-id
* @method GET * @method GET
* @param string $creditcardid * @param string $creditcardid
* @param PayPal\Rest\ApiContext $apiContext optional
*/ */
public static function get( $creditcardid) { public static function get( $creditcardid, $apiContext=null) {
if (($creditcardid == null) || (strlen($creditcardid) <= 0)) { if (($creditcardid == null) || (strlen($creditcardid) <= 0)) {
throw new \InvalidArgumentException("creditcardid cannot be null or empty"); throw new \InvalidArgumentException("creditcardid cannot be null or empty");
} }
$payLoad = ""; $payLoad = "";
if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $call = new Call(); $apiContext = new ApiContext(self::$credential);
$json = $call->execute("/v1/vault/credit-card/$creditcardid", "GET", $payLoad, $apiContext); }
$call = new \PPRestCall($apiContext);
$json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/vault/credit-card/$creditcardid",
"GET", $payLoad);
$ret = new CreditCard(); $ret = new CreditCard();
$ret->fromJson($json); $ret->fromJson($json);
return $ret; return $ret;

View File

@@ -18,6 +18,7 @@ class CreditCardToken extends Resource {
/** /**
* Getter for credit_card_id * Getter for credit_card_id
* @return string
*/ */
public function getCredit_card_id() { public function getCredit_card_id() {
return $this->credit_card_id; return $this->credit_card_id;
@@ -33,6 +34,7 @@ class CreditCardToken extends Resource {
/** /**
* Getter for payer_id * Getter for payer_id
* @return string
*/ */
public function getPayer_id() { public function getPayer_id() {
return $this->payer_id; return $this->payer_id;

View File

@@ -18,6 +18,7 @@ class FundingInstrument extends Resource {
/** /**
* Getter for credit_card * Getter for credit_card
* @return PayPal\Api\CreditCard
*/ */
public function getCredit_card() { public function getCredit_card() {
return $this->credit_card; return $this->credit_card;
@@ -33,6 +34,7 @@ class FundingInstrument extends Resource {
/** /**
* Getter for credit_card_token * Getter for credit_card_token
* @return PayPal\Api\CreditCardToken
*/ */
public function getCredit_card_token() { public function getCredit_card_token() {
return $this->credit_card_token; return $this->credit_card_token;

View File

@@ -18,6 +18,7 @@ class Item extends Resource {
/** /**
* Getter for name * Getter for name
* @return string
*/ */
public function getName() { public function getName() {
return $this->name; return $this->name;
@@ -33,6 +34,7 @@ class Item extends Resource {
/** /**
* Getter for sku * Getter for sku
* @return string
*/ */
public function getSku() { public function getSku() {
return $this->sku; return $this->sku;
@@ -48,6 +50,7 @@ class Item extends Resource {
/** /**
* Getter for price * Getter for price
* @return string
*/ */
public function getPrice() { public function getPrice() {
return $this->price; return $this->price;
@@ -63,6 +66,7 @@ class Item extends Resource {
/** /**
* Getter for currency * Getter for currency
* @return string
*/ */
public function getCurrency() { public function getCurrency() {
return $this->currency; return $this->currency;
@@ -78,6 +82,7 @@ class Item extends Resource {
/** /**
* Getter for quantity * Getter for quantity
* @return string
*/ */
public function getQuantity() { public function getQuantity() {
return $this->quantity; return $this->quantity;

View File

@@ -18,6 +18,7 @@ class ItemList extends Resource {
/** /**
* Getter for items * Getter for items
* @return PayPal\Api\Item
*/ */
public function getItems() { public function getItems() {
return $this->items; return $this->items;
@@ -33,6 +34,7 @@ class ItemList extends Resource {
/** /**
* Getter for shipping_address * Getter for shipping_address
* @return PayPal\Api\ShippingAddress
*/ */
public function getShipping_address() { public function getShipping_address() {
return $this->shipping_address; return $this->shipping_address;

View File

@@ -18,6 +18,7 @@ class Link extends Resource {
/** /**
* Getter for href * Getter for href
* @return string
*/ */
public function getHref() { public function getHref() {
return $this->href; return $this->href;
@@ -33,6 +34,7 @@ class Link extends Resource {
/** /**
* Getter for rel * Getter for rel
* @return string
*/ */
public function getRel() { public function getRel() {
return $this->rel; return $this->rel;
@@ -48,6 +50,7 @@ class Link extends Resource {
/** /**
* Getter for method * Getter for method
* @return string
*/ */
public function getMethod() { public function getMethod() {
return $this->method; return $this->method;

View File

@@ -18,6 +18,7 @@ class Payee extends Resource {
/** /**
* Getter for merchant_id * Getter for merchant_id
* @return string
*/ */
public function getMerchant_id() { public function getMerchant_id() {
return $this->merchant_id; return $this->merchant_id;
@@ -33,6 +34,7 @@ class Payee extends Resource {
/** /**
* Getter for email * Getter for email
* @return string
*/ */
public function getEmail() { public function getEmail() {
return $this->email; return $this->email;
@@ -48,6 +50,7 @@ class Payee extends Resource {
/** /**
* Getter for phone * Getter for phone
* @return string
*/ */
public function getPhone() { public function getPhone() {
return $this->phone; return $this->phone;

View File

@@ -18,6 +18,7 @@ class Payer extends Resource {
/** /**
* Getter for payment_method * Getter for payment_method
* @return string
*/ */
public function getPayment_method() { public function getPayment_method() {
return $this->payment_method; return $this->payment_method;
@@ -33,6 +34,7 @@ class Payer extends Resource {
/** /**
* Getter for payer_info * Getter for payer_info
* @return PayPal\Api\PayerInfo
*/ */
public function getPayer_info() { public function getPayer_info() {
return $this->payer_info; return $this->payer_info;
@@ -48,6 +50,7 @@ class Payer extends Resource {
/** /**
* Getter for funding_instruments * Getter for funding_instruments
* @return PayPal\Api\FundingInstrument
*/ */
public function getFunding_instruments() { public function getFunding_instruments() {
return $this->funding_instruments; return $this->funding_instruments;

View File

@@ -18,6 +18,7 @@ class PayerInfo extends Resource {
/** /**
* Getter for email * Getter for email
* @return string
*/ */
public function getEmail() { public function getEmail() {
return $this->email; return $this->email;
@@ -33,6 +34,7 @@ class PayerInfo extends Resource {
/** /**
* Getter for first_name * Getter for first_name
* @return string
*/ */
public function getFirst_name() { public function getFirst_name() {
return $this->first_name; return $this->first_name;
@@ -48,6 +50,7 @@ class PayerInfo extends Resource {
/** /**
* Getter for last_name * Getter for last_name
* @return string
*/ */
public function getLast_name() { public function getLast_name() {
return $this->last_name; return $this->last_name;
@@ -63,6 +66,7 @@ class PayerInfo extends Resource {
/** /**
* Getter for payer_id * Getter for payer_id
* @return string
*/ */
public function getPayer_id() { public function getPayer_id() {
return $this->payer_id; return $this->payer_id;
@@ -78,6 +82,7 @@ class PayerInfo extends Resource {
/** /**
* Getter for shipping_address * Getter for shipping_address
* @return PayPal\Api\Address
*/ */
public function getShipping_address() { public function getShipping_address() {
return $this->shipping_address; return $this->shipping_address;
@@ -93,6 +98,7 @@ class PayerInfo extends Resource {
/** /**
* Getter for phone * Getter for phone
* @return string
*/ */
public function getPhone() { public function getPhone() {
return $this->phone; return $this->phone;

View File

@@ -12,6 +12,10 @@ class Payment extends Resource implements IResource {
private static $credential; private static $credential;
/**
*
* @deprected. Pass ApiContext to create/get methods instead
*/
public static function setCredential($credential) { public static function setCredential($credential) {
self::$credential = $credential; self::$credential = $credential;
} }
@@ -26,6 +30,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for id * Getter for id
* @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
@@ -41,6 +46,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for create_time * Getter for create_time
* @return string
*/ */
public function getCreate_time() { public function getCreate_time() {
return $this->create_time; return $this->create_time;
@@ -56,6 +62,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for update_time * Getter for update_time
* @return string
*/ */
public function getUpdate_time() { public function getUpdate_time() {
return $this->update_time; return $this->update_time;
@@ -71,6 +78,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -86,6 +94,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for intent * Getter for intent
* @return string
*/ */
public function getIntent() { public function getIntent() {
return $this->intent; return $this->intent;
@@ -101,6 +110,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for payer * Getter for payer
* @return PayPal\Api\Payer
*/ */
public function getPayer() { public function getPayer() {
return $this->payer; return $this->payer;
@@ -116,6 +126,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for transactions * Getter for transactions
* @return PayPal\Api\Transaction
*/ */
public function getTransactions() { public function getTransactions() {
return $this->transactions; return $this->transactions;
@@ -131,6 +142,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for redirect_urls * Getter for redirect_urls
* @return PayPal\Api\RedirectUrls
*/ */
public function getRedirect_urls() { public function getRedirect_urls() {
return $this->redirect_urls; return $this->redirect_urls;
@@ -146,6 +158,7 @@ class Payment extends Resource implements IResource {
/** /**
* Getter for links * Getter for links
* @return PayPal\Api\Link
*/ */
public function getLinks() { public function getLinks() {
return $this->links; return $this->links;
@@ -168,13 +181,18 @@ class Payment extends Resource implements IResource {
* sort_by, * sort_by,
* sort_order, * sort_order,
* All other keys in the map are ignored by the SDK * All other keys in the map are ignored by the SDK
* @param PayPal\Rest\ApiContext $apiContext optional
*/ */
public static function all($params) { public static function all($params, $apiContext=null) {
$payLoad = ""; $payLoad = "";
$allowedParams = array('count' => 1, 'start_id' => 1, 'start_index' => 1, 'start_time' => 1, 'end_time' => 1, 'payee_id' => 1, 'sort_by' => 1, 'sort_order' => 1, ); $allowedParams = array('count' => 1, 'start_id' => 1, 'start_index' => 1, 'start_time' => 1, 'end_time' => 1, 'payee_id' => 1, 'sort_by' => 1, 'sort_order' => 1, );
if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $call = new Call(); $apiContext = new ApiContext(self::$credential);
$json = $call->execute("/v1/payments/payment?" . http_build_query(array_intersect_key($params, $allowedParams)), "GET", $payLoad, $apiContext); }
$call = new \PPRestCall($apiContext);
$json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/payment?" . http_build_query(array_intersect_key($params, $allowedParams)),
"GET", $payLoad);
$ret = new PaymentHistory(); $ret = new PaymentHistory();
$ret->fromJson($json); $ret->fromJson($json);
return $ret; return $ret;
@@ -192,8 +210,10 @@ class Payment extends Resource implements IResource {
if($apiContext == null) { if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $apiContext = new ApiContext(self::$credential);
} }
$call = new Call(); $call = new \PPRestCall($apiContext);
$json = $call->execute("/v1/payments/payment", "POST", $payLoad, $apiContext); $json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/payment",
"POST", $payLoad);
$this->fromJson($json); $this->fromJson($json);
return $this; return $this;
} }
@@ -202,15 +222,20 @@ class Payment extends Resource implements IResource {
* @path /v1/payments/payment/:payment-id * @path /v1/payments/payment/:payment-id
* @method GET * @method GET
* @param string $paymentid * @param string $paymentid
* @param PayPal\Rest\ApiContext $apiContext optional
*/ */
public static function get( $paymentid) { public static function get( $paymentid, $apiContext=null) {
if (($paymentid == null) || (strlen($paymentid) <= 0)) { if (($paymentid == null) || (strlen($paymentid) <= 0)) {
throw new \InvalidArgumentException("paymentid cannot be null or empty"); throw new \InvalidArgumentException("paymentid cannot be null or empty");
} }
$payLoad = ""; $payLoad = "";
if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $call = new Call(); $apiContext = new ApiContext(self::$credential);
$json = $call->execute("/v1/payments/payment/$paymentid", "GET", $payLoad, $apiContext); }
$call = new \PPRestCall($apiContext);
$json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/payment/$paymentid",
"GET", $payLoad);
$ret = new Payment(); $ret = new Payment();
$ret->fromJson($json); $ret->fromJson($json);
return $ret; return $ret;
@@ -234,8 +259,10 @@ class Payment extends Resource implements IResource {
if($apiContext == null) { if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $apiContext = new ApiContext(self::$credential);
} }
$call = new Call(); $call = new \PPRestCall($apiContext);
$json = $call->execute("/v1/payments/payment/{$this->getId()}/execute", "POST", $payLoad, $apiContext); $json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/payment/{$this->getId()}/execute",
"POST", $payLoad);
$this->fromJson($json); $this->fromJson($json);
return $this; return $this;
} }

View File

@@ -18,6 +18,7 @@ class PaymentExecution extends Resource {
/** /**
* Getter for payer_id * Getter for payer_id
* @return string
*/ */
public function getPayer_id() { public function getPayer_id() {
return $this->payer_id; return $this->payer_id;
@@ -33,6 +34,7 @@ class PaymentExecution extends Resource {
/** /**
* Getter for transactions * Getter for transactions
* @return PayPal\Api\Amount
*/ */
public function getTransactions() { public function getTransactions() {
return $this->transactions; return $this->transactions;

View File

@@ -18,6 +18,7 @@ class PaymentHistory extends Resource {
/** /**
* Getter for payments * Getter for payments
* @return PayPal\Api\Payment
*/ */
public function getPayments() { public function getPayments() {
return $this->payments; return $this->payments;
@@ -33,6 +34,7 @@ class PaymentHistory extends Resource {
/** /**
* Getter for count * Getter for count
* @return integer
*/ */
public function getCount() { public function getCount() {
return $this->count; return $this->count;
@@ -48,6 +50,7 @@ class PaymentHistory extends Resource {
/** /**
* Getter for next_id * Getter for next_id
* @return string
*/ */
public function getNext_id() { public function getNext_id() {
return $this->next_id; return $this->next_id;

View File

@@ -18,6 +18,7 @@ class RedirectUrls extends Resource {
/** /**
* Getter for return_url * Getter for return_url
* @return string
*/ */
public function getReturn_url() { public function getReturn_url() {
return $this->return_url; return $this->return_url;
@@ -33,6 +34,7 @@ class RedirectUrls extends Resource {
/** /**
* Getter for cancel_url * Getter for cancel_url
* @return string
*/ */
public function getCancel_url() { public function getCancel_url() {
return $this->cancel_url; return $this->cancel_url;

View File

@@ -12,6 +12,10 @@ class Refund extends Resource implements IResource {
private static $credential; private static $credential;
/**
*
* @deprected. Pass ApiContext to the get method instead
*/
public static function setCredential($credential) { public static function setCredential($credential) {
self::$credential = $credential; self::$credential = $credential;
} }
@@ -26,6 +30,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for id * Getter for id
* @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
@@ -41,6 +46,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for create_time * Getter for create_time
* @return string
*/ */
public function getCreate_time() { public function getCreate_time() {
return $this->create_time; return $this->create_time;
@@ -56,6 +62,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for update_time * Getter for update_time
* @return string
*/ */
public function getUpdate_time() { public function getUpdate_time() {
return $this->update_time; return $this->update_time;
@@ -71,6 +78,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -86,6 +94,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for amount * Getter for amount
* @return PayPal\Api\Amount
*/ */
public function getAmount() { public function getAmount() {
return $this->amount; return $this->amount;
@@ -101,6 +110,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for sale_id * Getter for sale_id
* @return string
*/ */
public function getSale_id() { public function getSale_id() {
return $this->sale_id; return $this->sale_id;
@@ -116,6 +126,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for capture_id * Getter for capture_id
* @return string
*/ */
public function getCapture_id() { public function getCapture_id() {
return $this->capture_id; return $this->capture_id;
@@ -131,6 +142,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for parent_payment * Getter for parent_payment
* @return string
*/ */
public function getParent_payment() { public function getParent_payment() {
return $this->parent_payment; return $this->parent_payment;
@@ -146,6 +158,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for description * Getter for description
* @return string
*/ */
public function getDescription() { public function getDescription() {
return $this->description; return $this->description;
@@ -161,6 +174,7 @@ class Refund extends Resource implements IResource {
/** /**
* Getter for links * Getter for links
* @return PayPal\Api\Link
*/ */
public function getLinks() { public function getLinks() {
return $this->links; return $this->links;
@@ -172,15 +186,20 @@ class Refund extends Resource implements IResource {
* @path /v1/payments/refund/:refund-id * @path /v1/payments/refund/:refund-id
* @method GET * @method GET
* @param string $refundid * @param string $refundid
* @param PayPal\Rest\ApiContext $apiContext optional
*/ */
public static function get( $refundid) { public static function get( $refundid, $apiContext=null) {
if (($refundid == null) || (strlen($refundid) <= 0)) { if (($refundid == null) || (strlen($refundid) <= 0)) {
throw new \InvalidArgumentException("refundid cannot be null or empty"); throw new \InvalidArgumentException("refundid cannot be null or empty");
} }
$payLoad = ""; $payLoad = "";
if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $call = new Call(); $apiContext = new ApiContext(self::$credential);
$json = $call->execute("/v1/payments/refund/$refundid", "GET", $payLoad, $apiContext); }
$call = new \PPRestCall($apiContext);
$json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/refund/$refundid",
"GET", $payLoad);
$ret = new Refund(); $ret = new Refund();
$ret->fromJson($json); $ret->fromJson($json);
return $ret; return $ret;

View File

@@ -1,12 +1,10 @@
<?php <?php
namespace PayPal\Api; namespace PayPal\Api;
use PayPal\Common\Model;
/** /**
* *
*/ */
class Resource extends Model { class Resource extends \PPModel {

View File

@@ -12,6 +12,10 @@ class Sale extends Resource implements IResource {
private static $credential; private static $credential;
/**
*
* @deprected. Pass ApiContext to refund/get methods instead
*/
public static function setCredential($credential) { public static function setCredential($credential) {
self::$credential = $credential; self::$credential = $credential;
} }
@@ -26,6 +30,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for id * Getter for id
* @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
@@ -41,6 +46,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for create_time * Getter for create_time
* @return string
*/ */
public function getCreate_time() { public function getCreate_time() {
return $this->create_time; return $this->create_time;
@@ -56,6 +62,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for update_time * Getter for update_time
* @return string
*/ */
public function getUpdate_time() { public function getUpdate_time() {
return $this->update_time; return $this->update_time;
@@ -71,6 +78,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for state * Getter for state
* @return string
*/ */
public function getState() { public function getState() {
return $this->state; return $this->state;
@@ -86,6 +94,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for amount * Getter for amount
* @return PayPal\Api\Amount
*/ */
public function getAmount() { public function getAmount() {
return $this->amount; return $this->amount;
@@ -101,6 +110,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for parent_payment * Getter for parent_payment
* @return string
*/ */
public function getParent_payment() { public function getParent_payment() {
return $this->parent_payment; return $this->parent_payment;
@@ -116,6 +126,7 @@ class Sale extends Resource implements IResource {
/** /**
* Getter for links * Getter for links
* @return PayPal\Api\Link
*/ */
public function getLinks() { public function getLinks() {
return $this->links; return $this->links;
@@ -127,15 +138,20 @@ class Sale extends Resource implements IResource {
* @path /v1/payments/sale/:sale-id * @path /v1/payments/sale/:sale-id
* @method GET * @method GET
* @param string $saleid * @param string $saleid
* @param PayPal\Rest\ApiContext $apiContext optional
*/ */
public static function get( $saleid) { public static function get( $saleid, $apiContext=null) {
if (($saleid == null) || (strlen($saleid) <= 0)) { if (($saleid == null) || (strlen($saleid) <= 0)) {
throw new \InvalidArgumentException("saleid cannot be null or empty"); throw new \InvalidArgumentException("saleid cannot be null or empty");
} }
$payLoad = ""; $payLoad = "";
if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $call = new Call(); $apiContext = new ApiContext(self::$credential);
$json = $call->execute("/v1/payments/sale/$saleid", "GET", $payLoad, $apiContext); }
$call = new \PPRestCall($apiContext);
$json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/sale/$saleid",
"GET", $payLoad);
$ret = new Sale(); $ret = new Sale();
$ret->fromJson($json); $ret->fromJson($json);
return $ret; return $ret;
@@ -159,8 +175,10 @@ class Sale extends Resource implements IResource {
if($apiContext == null) { if($apiContext == null) {
$apiContext = new ApiContext(self::$credential); $apiContext = new ApiContext(self::$credential);
} }
$call = new Call(); $call = new \PPRestCall($apiContext);
$json = $call->execute("/v1/payments/sale/{$this->getId()}/refund", "POST", $payLoad, $apiContext); $json = $call->execute( array('PayPal\Rest\RestHandler'),
"/v1/payments/sale/{$this->getId()}/refund",
"POST", $payLoad);
$this->fromJson($json); $this->fromJson($json);
return $this; return $this;
} }

View File

@@ -18,6 +18,7 @@ class ShippingAddress extends Address {
/** /**
* Getter for recipient_name * Getter for recipient_name
* @return string
*/ */
public function getRecipient_name() { public function getRecipient_name() {
return $this->recipient_name; return $this->recipient_name;

View File

@@ -18,6 +18,7 @@ class SubTransaction extends Resource {
/** /**
* Getter for sale * Getter for sale
* @return PayPal\Api\Sale
*/ */
public function getSale() { public function getSale() {
return $this->sale; return $this->sale;
@@ -33,6 +34,7 @@ class SubTransaction extends Resource {
/** /**
* Getter for authorization * Getter for authorization
* @return PayPal\Api\Authorization
*/ */
public function getAuthorization() { public function getAuthorization() {
return $this->authorization; return $this->authorization;
@@ -48,6 +50,7 @@ class SubTransaction extends Resource {
/** /**
* Getter for refund * Getter for refund
* @return PayPal\Api\Refund
*/ */
public function getRefund() { public function getRefund() {
return $this->refund; return $this->refund;
@@ -63,6 +66,7 @@ class SubTransaction extends Resource {
/** /**
* Getter for capture * Getter for capture
* @return PayPal\Api\Capture
*/ */
public function getCapture() { public function getCapture() {
return $this->capture; return $this->capture;

View File

@@ -18,6 +18,7 @@ class Transaction extends Resource {
/** /**
* Getter for amount * Getter for amount
* @return PayPal\Api\Amount
*/ */
public function getAmount() { public function getAmount() {
return $this->amount; return $this->amount;
@@ -33,6 +34,7 @@ class Transaction extends Resource {
/** /**
* Getter for payee * Getter for payee
* @return PayPal\Api\Payee
*/ */
public function getPayee() { public function getPayee() {
return $this->payee; return $this->payee;
@@ -48,6 +50,7 @@ class Transaction extends Resource {
/** /**
* Getter for description * Getter for description
* @return string
*/ */
public function getDescription() { public function getDescription() {
return $this->description; return $this->description;
@@ -63,6 +66,7 @@ class Transaction extends Resource {
/** /**
* Getter for item_list * Getter for item_list
* @return PayPal\Api\ItemList
*/ */
public function getItem_list() { public function getItem_list() {
return $this->item_list; return $this->item_list;
@@ -78,6 +82,7 @@ class Transaction extends Resource {
/** /**
* Getter for related_resources * Getter for related_resources
* @return PayPal\Api\SubTransaction
*/ */
public function getRelated_resources() { public function getRelated_resources() {
return $this->related_resources; return $this->related_resources;

View File

@@ -6,6 +6,10 @@ namespace PayPal\Auth;
* Oauth Token credential * Oauth Token credential
* *
*/ */
use PayPal\Rest\RestHandler;
use PayPal\Common\UserAgent;
class OAuthTokenCredential { class OAuthTokenCredential {
private static $expiryBufferTime = 120; private static $expiryBufferTime = 120;
@@ -46,13 +50,14 @@ class OAuthTokenCredential {
public function __construct($clientId, $clientSecret) { public function __construct($clientId, $clientSecret) {
$this->clientId = $clientId; $this->clientId = $clientId;
$this->clientSecret = $clientSecret; $this->clientSecret = $clientSecret;
$this->logger = new \PPLoggingManager(__CLASS__);
} }
/** /**
* @return the accessToken * @return the accessToken
*/ */
public function getAccessToken() { public function getAccessToken($config) {
$this->logger = new \PPLoggingManager(__CLASS__, $config);
// Check if Access Token is not null and has not expired. // Check if Access Token is not null and has not expired.
// The API returns expiry time as a relative time unit // The API returns expiry time as a relative time unit
// We use a buffer time when checking for token expiry to account // We use a buffer time when checking for token expiry to account
@@ -64,7 +69,7 @@ class OAuthTokenCredential {
} }
// If accessToken is Null, obtain a new token // If accessToken is Null, obtain a new token
if ($this->accessToken == null) { if ($this->accessToken == null) {
$this->generateAccessToken(); $this->_generateAccessToken($config);
} }
return $this->accessToken; return $this->accessToken;
} }
@@ -72,23 +77,18 @@ class OAuthTokenCredential {
/** /**
* Generates a new access token * Generates a new access token
*/ */
private function generateAccessToken() { private function _generateAccessToken($config) {
return $this->generateOAuthToken(base64_encode($this->clientId . ":" . $this->clientSecret));
}
/**
* Generate OAuth type token from Base64Client ID
*/
private function generateOAuthToken($base64ClientID) {
$base64ClientID = base64_encode($this->clientId . ":" . $this->clientSecret);
$headers = array( $headers = array(
"User-Agent" => \PPUserAgent::getValue(RestHandler::$sdkName, RestHandler::$sdkVersion),
"Authorization" => "Basic " . $base64ClientID, "Authorization" => "Basic " . $base64ClientID,
"Accept" => "*/*" "Accept" => "*/*"
); );
$httpConfiguration = $this->getOAuthHttpConfiguration(); $httpConfiguration = $this->getOAuthHttpConfiguration($config);
$httpConfiguration->setHeaders($headers); $httpConfiguration->setHeaders($headers);
$connection = \PPConnectionManager::getInstance()->getConnection($httpConfiguration); $connection = \PPConnectionManager::getInstance()->getConnection($httpConfiguration, $config);
$res = $connection->execute("grant_type=client_credentials"); $res = $connection->execute("grant_type=client_credentials");
$jsonResponse = json_decode($res, true); $jsonResponse = json_decode($res, true);
if($jsonResponse == NULL || if($jsonResponse == NULL ||
@@ -107,11 +107,26 @@ class OAuthTokenCredential {
/* /*
* Get HttpConfiguration object for OAuth API * Get HttpConfiguration object for OAuth API
*/ */
private function getOAuthHttpConfiguration() { private function getOAuthHttpConfiguration($config) {
$configMgr = \PPConfigManager::getInstance(); if (isset($config['oauth.EndPoint'])) {
$baseEndpoint = $config['oauth.EndPoint'];
} else if (isset($config['service.EndPoint'])) {
$baseEndpoint = $config['service.EndPoint'];
} else if (isset($config['mode'])) {
switch (strtoupper($config['mode'])) {
case 'SANDBOX':
$baseEndpoint = \PPConstants::REST_SANDBOX_ENDPOINT;
break;
case 'LIVE':
$baseEndpoint = \PPConstants::REST_LIVE_ENDPOINT;
break;
default:
throw new \PPConfigurationException('The mode config parameter must be set to either sandbox/live');
}
} else {
throw new PPConfigurationException('You must set one of service.endpoint or mode parameters in your configuration');
}
$baseEndpoint = ($configMgr->get("oauth.EndPoint") != '' && !is_array($configMgr->get("oauth.EndPoint"))) ?
$configMgr->get("oauth.EndPoint") : $configMgr->get("service.EndPoint");
$baseEndpoint = rtrim(trim($baseEndpoint), '/'); $baseEndpoint = rtrim(trim($baseEndpoint), '/');
return new \PPHttpConfig($baseEndpoint . "/v1/oauth2/token", "POST"); return new \PPHttpConfig($baseEndpoint . "/v1/oauth2/token", "POST");
} }

View File

@@ -1,19 +0,0 @@
<?php
namespace PayPal\Common;
class ArrayUtil {
/**
*
* @param array $arr
* @return true if $arr is an associative array
*/
public static function isAssocArray(array $arr) {
foreach($arr as $k => $v) {
if(is_int($k)) {
return false;
}
}
return true;
}
}

View File

@@ -1,88 +0,0 @@
<?php
namespace PayPal\Common;
use PayPal\Api\Payer;
/**
* Generic Model class that all API domain classes extend
* Stores all member data in a hashmap that enables easy
* JSON encoding/decoding
*/
class Model {
private $_propMap = array();
public function __get($key) {
return $this->_propMap[$key];
}
public function __set($key, $value) {
$this->_propMap[$key] = $value;
}
public function __isset($key) {
return isset($this->_propMap[$key]);
}
public function __unset($key) {
unset($this->_propMap[$key]);
}
private function _convertToArray($param) {
$ret = array();
foreach($param as $k => $v) {
if($v instanceof Model ) {
$ret[$k] = $v->toArray();
} else if (is_array($v)) {
$ret[$k] = $this->_convertToArray($v);
} else {
$ret[$k] = $v;
}
}
return $ret;
}
public function fromArray($arr) {
foreach($arr as $k => $v) {
if(is_array($v)) {
$clazz = ReflectionUtil::getPropertyClass(get_class($this), $k);
if(ArrayUtil::isAssocArray($v)) {
$o = new $clazz();
$o->fromArray($v);
$setterFunc = "set".ucfirst($k);
$this->$setterFunc($o);
} else {
$setterFunc = "set".ucfirst($k);
$arr = array();
foreach($v as $nk => $nv) {
if(is_array($nv)) {
$o = new $clazz();
$o->fromArray($nv);
$arr[$nk] = $o;
} else {
$arr[$nk] = $nv;
}
}
$this->$setterFunc($arr); //TODO: Cleaning up any current values in this case. Should be doing this allways
}
}else {
$this->$k = $v;
}
}
}
public function fromJson($json) {
$this->fromArray(json_decode($json, true));
}
public function toArray() {
return $this->_convertToArray($this->_propMap);
}
public function toJSON() {
return json_encode($this->toArray());
}
}

View File

@@ -1,73 +0,0 @@
<?php
namespace PayPal\Common;
class ReflectionUtil {
/**
* @var array|ReflectionMethod[]
*/
private static $propertiesRefl = array();
/**
* @var array|string[]
*/
private static $propertiesType = array();
/**
*
* @param string $class
* @param string $propertyName
*/
public static function getPropertyClass($class, $propertyName) {
if (($annotations = self::propertyAnnotations($class, $propertyName)) && isset($annotations['param'])) {
// if (substr($annotations['param'], -2) === '[]') {
// $param = substr($annotations['param'], 0, -2);
// }
$param = $annotations['param'];
}
if(isset($param)) {
$anno = explode(' ', $param);
return $anno[0];
} else {
return 'string';
}
}
/**
* @param string $class
* @param string $propertyName
* @throws RuntimeException
* @return string
*/
public static function propertyAnnotations($class, $propertyName)
{
$class = is_object($class) ? get_class($class) : $class;
if (!class_exists('ReflectionProperty')) {
throw new RuntimeException("Property type of " . $class . "::{$propertyName} cannot be resolved");
}
if ($annotations =& self::$propertiesType[$class][$propertyName]) {
return $annotations;
}
$setterFunc = "set" . ucfirst($propertyName);
if (!($refl =& self::$propertiesRefl[$class][$propertyName])) {
$refl = new \ReflectionMethod($class, $setterFunc);
}
// todo: smarter regexp
if (!preg_match_all('~\@([^\s@\(]+)[\t ]*(?:\(?([^\n@]+)\)?)?~i', $refl->getDocComment(), $annots, PREG_PATTERN_ORDER)) {
return NULL;
}
foreach ($annots[1] as $i => $annot) {
$annotations[strtolower($annot)] = empty($annots[2][$i]) ? TRUE : rtrim($annots[2][$i], " \t\n\r)");
}
return $annotations;
}
}

View File

@@ -1,44 +0,0 @@
<?php
namespace PayPal\Common;
define('SDK_NAME', 'rest-sdk-php');
define('SDK_VERSION', '0.5.0');
class UserAgent {
/**
* Returns the value of the User-Agent header
* Add environment values and php version numbers
*/
public static function getValue() {
$featureList = array(
'lang=PHP',
'v=' . PHP_VERSION,
'bit=' . UserAgent::_getPHPBit(),
'os=' . str_replace(' ' , '_', php_uname('s') . ' ' . php_uname('r')),
'machine=' . php_uname('m')
);
if(defined('OPENSSL_VERSION_TEXT')) {
$opensslVersion = explode(' ', OPENSSL_VERSION_TEXT);
$featureList[] = 'openssl='. $opensslVersion[1];
}
if(function_exists('curl_version')) {
$curlVersion = curl_version();
$featureList[] = 'curl=' . $curlVersion['version'];
}
return sprintf("PayPalSDK/%s %s (%s)", SDK_NAME, SDK_VERSION, implode(';', $featureList));
}
private static function _getPHPBit() {
switch(PHP_INT_SIZE) {
case 4:
return '32';
case 8:
return '64';
default:
return PHP_INT_SIZE;
}
}
}

View File

@@ -6,7 +6,7 @@ namespace PayPal\Rest;
* Call level parameters such as * Call level parameters such as
* request id, credentials etc * request id, credentials etc
*/ */
class ApiContext { class ApiContext extends \PPApiContext {
/** /**
* OAuth Credentials to use for this call * OAuth Credentials to use for this call
@@ -22,7 +22,6 @@ class ApiContext {
*/ */
private $requestId; private $requestId;
/** /**
* *
*/ */
@@ -32,11 +31,12 @@ class ApiContext {
public function getrequestId() { public function getrequestId() {
if($this->requestId == null) { if($this->requestId == null) {
$this->requestId = $this->generaterequestId(); $this->requestId = $this->generateRequestId();
} }
return $this->requestId; return $this->requestId;
} }
/** /**
* *
* @param PayPal/Api/OAuthTokenCredential $credential * @param PayPal/Api/OAuthTokenCredential $credential

View File

@@ -1,59 +0,0 @@
<?php
namespace PayPal\Rest;
use PayPal\Auth\OAuthTokenCredential;
use PayPal\Common\UserAgent;
class Call {
private $logger;
public function __construct() {
$this->logger = new \PPLoggingManager(__CLASS__);
}
/**
*
* @param string $path
* @param string $data
* @param PayPal/Rest/ApiContext $apiContext
* @param array $headers
*/
public function execute($path, $method, $data='', $apiContext, $headers=array()) {
$configMgr = \PPConfigManager::getInstance();
$credential = $apiContext->getCredential();
if($credential == NULL) {
// Try picking credentials from the config file
$credMgr = \PPCredentialManager::getInstance();
$credValues = $credMgr->getCredentialObject();
if(!is_array($credValues)) {
throw new \PPMissingCredentialException("Empty or invalid credentials passed");
}
$credential = new OAuthTokenCredential($credValues['clientId'], $credValues['clientSecret']);
}
if($credential == NULL || ! ($credential instanceof OAuthTokenCredential) ) {
throw new \PPInvalidCredentialException("Invalid credentials passed");
}
$resourceUrl = rtrim( trim($configMgr->get('service.EndPoint')), '/') . $path;
$config = new \PPHttpConfig($resourceUrl, $method);
$headers += array(
'Content-Type' => 'application/json',
'User-Agent' => UserAgent::getValue()
);
if(!is_null($credential) && $credential instanceof OAuthTokenCredential) {
$headers['Authorization'] = "Bearer " . $credential->getAccessToken();
}
if($method == 'POST' || $method == 'PUT') {
$headers['PayPal-Request-Id'] = $apiContext->getRequestId();
}
$config->setHeaders($headers);
$connection = new \PPHttpConnection($config);
$response = $connection->execute($data);
$this->logger->fine($response);
return $response;
}
}

View File

@@ -0,0 +1,77 @@
<?php
namespace PayPal\Rest;
use PayPal\Auth\OAuthTokenCredential;
/**
*
* API handler for all REST API calls
*/
class RestHandler implements \IPPHandler {
private $apiContext;
public static $sdkName = "rest-sdk-php";
public static $sdkVersion = "0.6.0";
public function __construct($apiContext) {
$this->apiContext = $apiContext;
}
public function handle($httpConfig, $request, $options) {
$credential = $this->apiContext->getCredential();
$config = $this->apiContext->getConfig();
if($credential == NULL) {
// Try picking credentials from the config file
$credMgr = \PPCredentialManager::getInstance($config);
$credValues = $credMgr->getCredentialObject();
if(!is_array($credValues)) {
throw new \PPMissingCredentialException("Empty or invalid credentials passed");
}
$credential = new OAuthTokenCredential($credValues['clientId'], $credValues['clientSecret']);
}
if($credential == NULL || ! ($credential instanceof OAuthTokenCredential) ) {
throw new \PPInvalidCredentialException("Invalid credentials passed");
}
$httpConfig->setUrl(
rtrim( trim($this->_getEndpoint($config)), '/') .
(isset($options['path']) ? $options['path'] : '')
);
if(!array_key_exists("User-Agent", $httpConfig->getHeaders())) {
$httpConfig->addHeader("User-Agent", \PPUserAgent::getValue(self::$sdkName, self::$sdkVersion));
}
if(!is_null($credential) && $credential instanceof OAuthTokenCredential) {
$httpConfig->addHeader('Authorization', "Bearer " . $credential->getAccessToken($config));
}
if($httpConfig->getMethod() == 'POST' || $httpConfig->getMethod() == 'PUT') {
$httpConfig->addHeader('PayPal-Request-Id', $this->apiContext->getRequestId());
}
}
private function _getEndpoint($config) {
if (isset($config['service.EndPoint'])) {
return $config['service.EndPoint'];
} else if (isset($config['mode'])) {
switch (strtoupper($config['mode'])) {
case 'SANDBOX':
return \PPConstants::REST_SANDBOX_ENDPOINT;
break;
case 'LIVE':
return \PPConstants::REST_LIVE_ENDPOINT;
break;
default:
throw new PPConfigurationException('The mode config parameter must be set to either sandbox/live');
break;
}
} else {
throw new PPConfigurationException('You must set one of service.endpoint or mode parameters in your configuration');
}
}
}

View File

@@ -9,23 +9,30 @@ if(!file_exists(__DIR__ .'/vendor/autoload.php')) {
exit(1); exit(1);
} }
require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/vendor/autoload.php';
use PayPal\Auth\OAuthTokenCredential;
define("PP_CONFIG_PATH", __DIR__); define("PP_CONFIG_PATH", __DIR__);
$configManager = \PPConfigManager::getInstance(); use PayPal\Rest\ApiContext;
use PayPal\Auth\OAuthTokenCredential;
// $cred is used by samples that include this bootstrap file
// This piece of code simply demonstrates how you can
// dynamically pass in a client id/secret instead of using
// the config file. If you do not need a way to pass
// in credentials dynamically, you can skip the
// <Resource>::setCredential($cred) calls that
// you see in the samples.
$cred = new OAuthTokenCredential(
$configManager->get('acct1.ClientId'),
$configManager->get('acct1.ClientSecret'));
// ### Api Context
// Pass in a `PayPal\Rest\ApiContext` object to authenticate
// the call. You can also send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext(new OAuthTokenCredential(
'EBWKjlELKMYqRNQ6sYvFo64FtaRLRR5BdHEESmha49TM',
'EO422dn3gQLgDbuwqTjzrFgFtaRLRR5BdHEESmha49TM'));
// Uncomment this step if you want to use per request
// dynamic configuration instead of using sdk_config.ini
/*
$apiContext->setConfig(array(
'mode' => 'sandbox',
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'FINE'
));
*/
/** /**
* ### getBaseUrl function * ### getBaseUrl function

View File

@@ -9,6 +9,6 @@
"php": ">=5.3.0", "php": ">=5.3.0",
"ext-curl": "*", "ext-curl": "*",
"ext-json": "*", "ext-json": "*",
"paypal/rest-api-sdk-php" : "0.5.*" "paypal/rest-api-sdk-php" : "0.6.*"
} }
} }

View File

@@ -13,7 +13,6 @@ use PayPal\Api\Payer;
use PayPal\Api\Payment; use PayPal\Api\Payment;
use PayPal\Api\FundingInstrument; use PayPal\Api\FundingInstrument;
use PayPal\Api\Transaction; use PayPal\Api\Transaction;
use PayPal\Rest\ApiContext;
// ### Address // ### Address
// Base Address object used as shipping or billing // Base Address object used as shipping or billing
@@ -80,16 +79,11 @@ $payment->setIntent("sale");
$payment->setPayer($payer); $payment->setPayer($payer);
$payment->setTransactions(array($transaction)); $payment->setTransactions(array($transaction));
// ### Api Context
// Pass in a `ApiContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext($cred, 'Request' . time());
// ### Create Payment // ### Create Payment
// Create a payment by posting to the APIService // Create a payment by posting to the APIService
// using a valid ApiContext // using a valid ApiContext (See bootstrap.php for more on `ApiContext`)
// The return object contains the status; // The return object contains the status;
try { try {
$payment->create($apiContext); $payment->create($apiContext);

View File

@@ -13,7 +13,6 @@ use PayPal\Api\Payment;
use PayPal\Api\FundingInstrument; use PayPal\Api\FundingInstrument;
use PayPal\Api\RedirectUrls; use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction; use PayPal\Api\Transaction;
use PayPal\Rest\ApiContext;
session_start(); session_start();
// ### Payer // ### Payer
@@ -55,16 +54,10 @@ $payment->setPayer($payer);
$payment->setRedirect_urls($redirectUrls); $payment->setRedirect_urls($redirectUrls);
$payment->setTransactions(array($transaction)); $payment->setTransactions(array($transaction));
// ### Api Context
// Pass in a `ApiContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext($cred, 'Request' . time());
// ### Create Payment // ### Create Payment
// Create a payment by posting to the APIService // Create a payment by posting to the APIService
// using a valid apiContext // using a valid apiContext.
// (See bootstrap.php for more on `ApiContext`)
// The return object contains the status and the // The return object contains the status and the
// url to which the buyer must be redirected to // url to which the buyer must be redirected to
// for payment approval // for payment approval

View File

@@ -16,7 +16,6 @@ use PayPal\Api\FundingInstrument;
use PayPal\Api\RedirectUrls; use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction; use PayPal\Api\Transaction;
use PayPal\Auth\OAuthTokenCredential; use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;
// ### Credit card token // ### Credit card token
// Saved credit card id from a previous call to // Saved credit card id from a previous call to
@@ -65,16 +64,9 @@ $payment->setIntent("sale");
$payment->setPayer($payer); $payment->setPayer($payer);
$payment->setTransactions(array($transaction)); $payment->setTransactions(array($transaction));
// ### Api Context
// Pass in a `ApiContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext($cred, 'Request' . time());
// ###Create Payment // ###Create Payment
// Create a payment by posting to the APIService // Create a payment by posting to the APIService
// using a valid apiContext // (See bootstrap.php for more on `ApiContext`)
// The return object contains the status; // The return object contains the status;
try { try {
$payment->create($apiContext); $payment->create($apiContext);

View File

@@ -11,22 +11,14 @@ require __DIR__ . '/../bootstrap.php';
use PayPal\Api\ExecutePayment; use PayPal\Api\ExecutePayment;
use PayPal\Api\Payment; use PayPal\Api\Payment;
use PayPal\Api\PaymentExecution; use PayPal\Api\PaymentExecution;
use PayPal\Rest\ApiContext;
session_start(); session_start();
if(isset($_GET['success']) && $_GET['success'] == 'true') { if(isset($_GET['success']) && $_GET['success'] == 'true') {
// ### Api Context
// Pass in a `ApiContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext($cred);
// Get the payment Object by passing paymentId // Get the payment Object by passing paymentId
// payment id was previously stored in session in // payment id was previously stored in session in
// CreatePaymentUsingPayPal.php // CreatePaymentUsingPayPal.php
$paymentId = $_SESSION['paymentId']; $paymentId = $_SESSION['paymentId'];
$payment = Payment::get($paymentId); $payment = Payment::get($paymentId, $apiContext);
// PaymentExecution object includes information necessary // PaymentExecution object includes information necessary
// to execute a PayPal account payment. // to execute a PayPal account payment.
@@ -36,6 +28,7 @@ if(isset($_GET['success']) && $_GET['success'] == 'true') {
$execution->setPayer_id($_GET['PayerID']); $execution->setPayer_id($_GET['PayerID']);
//Execute the payment //Execute the payment
// (See bootstrap.php for more on `ApiContext`)
$payment->execute($execution, $apiContext); $payment->execute($execution, $apiContext);
echo "<html><body><pre>"; echo "<html><body><pre>";

View File

@@ -13,17 +13,14 @@ use PayPal\Api\Payment;
$paymentId = "PAY-0XL713371A312273YKE2GCNI"; $paymentId = "PAY-0XL713371A312273YKE2GCNI";
// ### Authentication
// Pass in a `OAuthTokenCredential` object
// explicilty to authenticate the call.
Payment::setCredential($cred);
// ### Retrieve payment // ### Retrieve payment
// Retrieve the payment object by calling the // Retrieve the payment object by calling the
// static `get` method // static `get` method
// on the Payment class by passing a valid // on the Payment class by passing a valid
// Payment ID // Payment ID
// (See bootstrap.php for more on `ApiContext`)
try { try {
$payment = Payment::get($paymentId); $payment = Payment::get($paymentId, $apiContext);
} catch (\PPConnectionException $ex) { } catch (\PPConnectionException $ex) {
echo "Exception:" . $ex->getMessage() . PHP_EOL; echo "Exception:" . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData()); var_dump($ex->getData());

View File

@@ -12,12 +12,6 @@
require __DIR__ . '/../bootstrap.php'; require __DIR__ . '/../bootstrap.php';
use PayPal\Api\Payment; use PayPal\Api\Payment;
// ### Authentication
// Pass in a `OAuthTokenCredential` object
// explicilty to authenticate the call.
// If you skip this step, the client id/secret
// set in the config file will be used.
Payment::setCredential($cred);
// ### Retrieve payment // ### Retrieve payment
// Retrieve the PaymentHistory object by calling the // Retrieve the PaymentHistory object by calling the
@@ -25,8 +19,9 @@ Payment::setCredential($cred);
// and pass a Map object that contains // and pass a Map object that contains
// query parameters for paginations and filtering. // query parameters for paginations and filtering.
// Refer the method doc for valid values for keys // Refer the method doc for valid values for keys
// (See bootstrap.php for more on `ApiContext`)
try { try {
$payments = Payment::all(array('count' => 10, 'start_index' => 5)); $payments = Payment::all(array('count' => 10, 'start_index' => 5), $apiContext);
} catch (\PPConnectionException $ex) { } catch (\PPConnectionException $ex) {
echo "Exception:" . $ex->getMessage() . PHP_EOL; echo "Exception:" . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData()); var_dump($ex->getData());

View File

@@ -9,17 +9,12 @@ require __DIR__ . '/../bootstrap.php';
use PayPal\Api\Sale; use PayPal\Api\Sale;
$saleId = '3RM92092UW5126232'; $saleId = '3RM92092UW5126232';
// ### Authentication
// Pass in a `OAuthTokenCredential` object
// explicilty to authenticate the call.
// If you skip this step, the client id/secret
// set in the config file will be used.
Sale::setCredential($cred);
try { try {
// ### Retrieve the sale object // ### Retrieve the sale object
// Pass the ID of the sale // Pass the ID of the sale
// transaction from your payment resource. // transaction from your payment resource.
$sale = Sale::get($saleId); $sale = Sale::get($saleId, $apiContext);
} catch (\PPConnectionException $ex) { } catch (\PPConnectionException $ex) {
echo "Exception:" . $ex->getMessage() . PHP_EOL; echo "Exception:" . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData()); var_dump($ex->getData());

View File

@@ -10,7 +10,6 @@ require __DIR__ . '/../bootstrap.php';
use PayPal\Api\Amount; use PayPal\Api\Amount;
use PayPal\Api\Refund; use PayPal\Api\Refund;
use PayPal\Api\Sale; use PayPal\Api\Sale;
use PayPal\Rest\ApiContext;
// ### Refund // ### Refund
// Create a refund object indicating // Create a refund object indicating
@@ -31,14 +30,9 @@ $saleId = '3RM92092UW5126232';
$sale = new Sale(); $sale = new Sale();
$sale->setId($saleId); $sale->setId($saleId);
// ### Api Context
// Pass in a `ApiContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext($cred, 'Request' . time());
try { try {
// Refund the sale // Refund the sale
// (See bootstrap.php for more on `ApiContext`)
$sale->refund($refund, $apiContext); $sale->refund($refund, $apiContext);
} catch (\PPConnectionException $ex) { } catch (\PPConnectionException $ex) {
echo "Exception:" . $ex->getMessage() . PHP_EOL; echo "Exception:" . $ex->getMessage() . PHP_EOL;

View File

@@ -1,9 +1,3 @@
;Account credentials from developer portal
[Account]
acct1.ClientId = EBWKjlELKMYqRNQ6sYvFo64FtaRLRR5BdHEESmha49TM
acct1.ClientSecret = EO422dn3gQLgDbuwqTjzrFgFtaRLRR5BdHEESmha49TM
;Connection Information ;Connection Information
[Http] [Http]
http.ConnectionTimeOut = 30 http.ConnectionTimeOut = 30
@@ -13,10 +7,7 @@ http.Retry = 1
;Service Configuration ;Service Configuration
[Service] [Service]
service.EndPoint="https://api.sandbox.paypal.com" mode=sandbox ; can be set to sandbox / live
; Uncomment this line for integrating with the live endpoint
; service.EndPoint="https://api.paypal.com"
;Logging Information ;Logging Information
[Log] [Log]

View File

@@ -7,9 +7,7 @@ a payment in the future.
The following code demonstrates how The following code demonstrates how
can save a Credit Card on PayPal using can save a Credit Card on PayPal using
the Vault API. the Vault API.
API used: POST /v1/vault/credit-card</p></div></div><div class="code"><div class="wrapper"><span class="k">use</span> <span class="nx">PayPal\Rest\ApiContext</span><span class="p">;</span> API used: POST /v1/vault/credit-card</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\CreditCard</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\CreditCard</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Address</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="creditcard">CreditCard</h3> <span class="k">use</span> <span class="nx">PayPal\Api\Address</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="creditcard">CreditCard</h3>
@@ -21,18 +19,14 @@ used to fund a payment.</p></div></div><div class="code"><div class="wrapper"><s
<span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setExpire_year</span><span class="p">(</span><span class="s2">&quot;2019&quot;</span><span class="p">);</span> <span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setExpire_year</span><span class="p">(</span><span class="s2">&quot;2019&quot;</span><span class="p">);</span>
<span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setCvv2</span><span class="p">(</span><span class="s2">&quot;012&quot;</span><span class="p">);</span> <span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setCvv2</span><span class="p">(</span><span class="s2">&quot;012&quot;</span><span class="p">);</span>
<span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setFirst_name</span><span class="p">(</span><span class="s2">&quot;Joe&quot;</span><span class="p">);</span> <span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setFirst_name</span><span class="p">(</span><span class="s2">&quot;Joe&quot;</span><span class="p">);</span>
<span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setLast_name</span><span class="p">(</span><span class="s2">&quot;Shopper&quot;</span><span class="p">);</span></div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><h3 id="api-context">Api Context</h3> <span class="nv">$card</span><span class="o">-&gt;</span><span class="na">setLast_name</span><span class="p">(</span><span class="s2">&quot;Shopper&quot;</span><span class="p">);</span></div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><h3 id="save-card">Save card</h3>
<p>Pass in a <code>ApiContext</code> object to authenticate
the call and to send a unique request id
(that ensures idempotency). The SDK generates
a request id if you do not pass one explicitly. </p></div></div><div class="code"><div class="wrapper"><span class="nv">$apiContext</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ApiContext</span><span class="p">(</span><span class="nv">$cred</span><span class="p">,</span> <span class="s1">&#39;Request&#39;</span> <span class="o">.</span> <span class="nb">time</span><span class="p">());</span></div></div></div><div class="segment"><a id="segment-4" name="segment-4" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-4" class="pilcrow"></a></div><div class="wrapper"><h3 id="save-card">Save card</h3>
<p>Creates the credit card as a resource <p>Creates the credit card as a resource
in the PayPal vault. The response contains in the PayPal vault. The response contains
an 'id' that you can use to refer to it an 'id' that you can use to refer to it
in the future payments.</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span> in the future payments.
<span class="nv">$card</span><span class="o">-&gt;</span><span class="na">create</span><span class="p">();</span> (See bootstrap.php for more on <code>ApiContext</code>)</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
<span class="nv">$card</span><span class="o">-&gt;</span><span class="na">create</span><span class="p">(</span><span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>

View File

@@ -9,8 +9,7 @@ API used: /v1/payments/payment</p></div></div><div class="code"><div class="wrap
<span class="k">use</span> <span class="nx">PayPal\Api\Payer</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Payer</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\FundingInstrument</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\FundingInstrument</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Transaction</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Transaction</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="address">Address</h3>
<span class="k">use</span> <span class="nx">PayPal\Rest\ApiContext</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="address">Address</h3>
<p>Base Address object used as shipping or billing <p>Base Address object used as shipping or billing
address in a payment. [Optional]</p></div></div><div class="code"><div class="wrapper"><span class="nv">$addr</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Address</span><span class="p">();</span> address in a payment. [Optional]</p></div></div><div class="code"><div class="wrapper"><span class="nv">$addr</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Address</span><span class="p">();</span>
@@ -61,20 +60,15 @@ a <code>Payee</code> and <code>Amount</code> types</p></div></div><div class="co
the above types and intent as 'sale'</p></div></div><div class="code"><div class="wrapper"><span class="nv">$payment</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Payment</span><span class="p">();</span> the above types and intent as 'sale'</p></div></div><div class="code"><div class="wrapper"><span class="nv">$payment</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Payment</span><span class="p">();</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setIntent</span><span class="p">(</span><span class="s2">&quot;sale&quot;</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setIntent</span><span class="p">(</span><span class="s2">&quot;sale&quot;</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setPayer</span><span class="p">(</span><span class="nv">$payer</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setPayer</span><span class="p">(</span><span class="nv">$payer</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setTransactions</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="nv">$transaction</span><span class="p">));</span></div></div></div><div class="segment"><a id="segment-9" name="segment-9" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-9" class="pilcrow"></a></div><div class="wrapper"><h3 id="api-context">Api Context</h3> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setTransactions</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="nv">$transaction</span><span class="p">));</span></div></div></div><div class="segment"><a id="segment-9" name="segment-9" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-9" class="pilcrow"></a></div><div class="wrapper"><h3 id="create-payment">Create Payment</h3>
<p>Pass in a <code>ApiContext</code> object to authenticate
the call and to send a unique request id
(that ensures idempotency). The SDK generates
a request id if you do not pass one explicitly. </p></div></div><div class="code"><div class="wrapper"><span class="nv">$apiContext</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ApiContext</span><span class="p">(</span><span class="nv">$cred</span><span class="p">,</span> <span class="s1">&#39;Request&#39;</span> <span class="o">.</span> <span class="nb">time</span><span class="p">());</span></div></div></div><div class="segment"><a id="segment-10" name="segment-10" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-10" class="pilcrow"></a></div><div class="wrapper"><h3 id="create-payment">Create Payment</h3>
<p>Create a payment by posting to the APIService <p>Create a payment by posting to the APIService
using a valid ApiContext using a valid ApiContext (See bootstrap.php for more on <code>ApiContext</code>)
The return object contains the status;</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span> The return object contains the status;</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">create</span><span class="p">(</span><span class="nv">$apiContext</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">create</span><span class="p">(</span><span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception: &quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception: &quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="x"> &lt;pre&gt;</span><span class="cp">&lt;?php</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$card</span><span class="p">);</span><span class="cp">?&gt;</span><span class="x">&lt;/pre&gt;</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>
<span class="k">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> <span class="k">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span> <span class="p">}</span>
<span class="cp">?&gt;</span><span class="x"></span> <span class="cp">?&gt;</span><span class="x"></span>

View File

@@ -10,7 +10,6 @@ API used: /v1/payments/payment</p></div></div><div class="code"><div class="wrap
<span class="k">use</span> <span class="nx">PayPal\Api\FundingInstrument</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\FundingInstrument</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\RedirectUrls</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\RedirectUrls</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Transaction</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Transaction</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Rest\ApiContext</span><span class="p">;</span>
<span class="nb">session_start</span><span class="p">();</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="payer">Payer</h3> <span class="nb">session_start</span><span class="p">();</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="payer">Payer</h3>
<p>A resource representing a Payer that funds a payment <p>A resource representing a Payer that funds a payment
@@ -40,15 +39,11 @@ the above types and intent as 'sale'</p></div></div><div class="code"><div class
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setIntent</span><span class="p">(</span><span class="s2">&quot;sale&quot;</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setIntent</span><span class="p">(</span><span class="s2">&quot;sale&quot;</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setPayer</span><span class="p">(</span><span class="nv">$payer</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setPayer</span><span class="p">(</span><span class="nv">$payer</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setRedirect_urls</span><span class="p">(</span><span class="nv">$redirectUrls</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setRedirect_urls</span><span class="p">(</span><span class="nv">$redirectUrls</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setTransactions</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="nv">$transaction</span><span class="p">));</span></div></div></div><div class="segment"><a id="segment-7" name="segment-7" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-7" class="pilcrow"></a></div><div class="wrapper"><h3 id="api-context">Api Context</h3> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setTransactions</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="nv">$transaction</span><span class="p">));</span></div></div></div><div class="segment"><a id="segment-7" name="segment-7" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-7" class="pilcrow"></a></div><div class="wrapper"><h3 id="create-payment">Create Payment</h3>
<p>Pass in a <code>ApiContext</code> object to authenticate
the call and to send a unique request id
(that ensures idempotency). The SDK generates
a request id if you do not pass one explicitly. </p></div></div><div class="code"><div class="wrapper"><span class="nv">$apiContext</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ApiContext</span><span class="p">(</span><span class="nv">$cred</span><span class="p">,</span> <span class="s1">&#39;Request&#39;</span> <span class="o">.</span> <span class="nb">time</span><span class="p">());</span></div></div></div><div class="segment"><a id="segment-8" name="segment-8" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-8" class="pilcrow"></a></div><div class="wrapper"><h3 id="create-payment">Create Payment</h3>
<p>Create a payment by posting to the APIService <p>Create a payment by posting to the APIService
using a valid apiContext using a valid apiContext.
(See bootstrap.php for more on <code>ApiContext</code>)
The return object contains the status and the The return object contains the status and the
url to which the buyer must be redirected to url to which the buyer must be redirected to
for payment approval</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span> for payment approval</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
@@ -57,13 +52,13 @@ for payment approval</p></div></div><div class="code"><div class="wrapper"><span
<span class="k">echo</span> <span class="s2">&quot;Exception: &quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception: &quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>
<span class="k">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> <span class="k">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span></div></div></div><div class="segment"><a id="segment-9" name="segment-9" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-9" class="pilcrow"></a></div><div class="wrapper"><h3 id="redirect-buyer-to-paypal">Redirect buyer to paypal</h3> <span class="p">}</span></div></div></div><div class="segment"><a id="segment-8" name="segment-8" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-8" class="pilcrow"></a></div><div class="wrapper"><h3 id="redirect-buyer-to-paypal">Redirect buyer to paypal</h3>
<p>Retrieve buyer approval url from the <code>payment</code> object.</p></div></div><div class="code"><div class="wrapper"><span class="k">foreach</span><span class="p">(</span><span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">getLinks</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$link</span><span class="p">)</span> <span class="p">{</span> <p>Retrieve buyer approval url from the <code>payment</code> object.</p></div></div><div class="code"><div class="wrapper"><span class="k">foreach</span><span class="p">(</span><span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">getLinks</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$link</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span><span class="p">(</span><span class="nv">$link</span><span class="o">-&gt;</span><span class="na">getRel</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;approval_url&#39;</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span><span class="p">(</span><span class="nv">$link</span><span class="o">-&gt;</span><span class="na">getRel</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;approval_url&#39;</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$redirectUrl</span> <span class="o">=</span> <span class="nv">$link</span><span class="o">-&gt;</span><span class="na">getHref</span><span class="p">();</span> <span class="nv">$redirectUrl</span> <span class="o">=</span> <span class="nv">$link</span><span class="o">-&gt;</span><span class="na">getHref</span><span class="p">();</span>
<span class="p">}</span> <span class="p">}</span>
<span class="p">}</span></div></div></div><div class="segment"><a id="segment-10" name="segment-10" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-10" class="pilcrow"></a></div><div class="wrapper"><p>It is not really a great idea to store the payment id <span class="p">}</span></div></div></div><div class="segment"><a id="segment-9" name="segment-9" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-9" class="pilcrow"></a></div><div class="wrapper"><p>It is not really a great idea to store the payment id
in the session. In a real world app, please store the in the session. In a real world app, please store the
payment id in a database.</p></div></div><div class="code"><div class="wrapper"><span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">&#39;paymentId&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">getId</span><span class="p">();</span> payment id in a database.</p></div></div><div class="code"><div class="wrapper"><span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">&#39;paymentId&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">getId</span><span class="p">();</span>
<span class="k">if</span><span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$redirectUrl</span><span class="p">))</span> <span class="p">{</span> <span class="k">if</span><span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$redirectUrl</span><span class="p">))</span> <span class="p">{</span>

View File

@@ -12,8 +12,7 @@ API used: /v1/payments/payment</p></div></div><div class="code"><div class="wrap
<span class="k">use</span> <span class="nx">PayPal\Api\FundingInstrument</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\FundingInstrument</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\RedirectUrls</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\RedirectUrls</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Transaction</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Transaction</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Auth\OAuthTokenCredential</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Auth\OAuthTokenCredential</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="credit-card-token">Credit card token</h3>
<span class="k">use</span> <span class="nx">PayPal\Rest\ApiContext</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="credit-card-token">Credit card token</h3>
<p>Saved credit card id from a previous call to <p>Saved credit card id from a previous call to
CreateCreditCard.php</p></div></div><div class="code"><div class="wrapper"><span class="nv">$creditCardId</span> <span class="o">=</span> <span class="s1">&#39;CARD-5BT058015C739554AKE2GCEI&#39;</span><span class="p">;</span> CreateCreditCard.php</p></div></div><div class="code"><div class="wrapper"><span class="nv">$creditCardId</span> <span class="o">=</span> <span class="s1">&#39;CARD-5BT058015C739554AKE2GCEI&#39;</span><span class="p">;</span>
@@ -48,15 +47,10 @@ a <code>Payee</code> and <code>Amount</code> types</p></div></div><div class="co
the above types and intent as 'sale'</p></div></div><div class="code"><div class="wrapper"><span class="nv">$payment</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Payment</span><span class="p">();</span> the above types and intent as 'sale'</p></div></div><div class="code"><div class="wrapper"><span class="nv">$payment</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Payment</span><span class="p">();</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setIntent</span><span class="p">(</span><span class="s2">&quot;sale&quot;</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setIntent</span><span class="p">(</span><span class="s2">&quot;sale&quot;</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setPayer</span><span class="p">(</span><span class="nv">$payer</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setPayer</span><span class="p">(</span><span class="nv">$payer</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setTransactions</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="nv">$transaction</span><span class="p">));</span></div></div></div><div class="segment"><a id="segment-8" name="segment-8" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-8" class="pilcrow"></a></div><div class="wrapper"><h3 id="api-context">Api Context</h3> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">setTransactions</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="nv">$transaction</span><span class="p">));</span></div></div></div><div class="segment"><a id="segment-8" name="segment-8" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-8" class="pilcrow"></a></div><div class="wrapper"><h3 id="create-payment">Create Payment</h3>
<p>Pass in a <code>ApiContext</code> object to authenticate
the call and to send a unique request id
(that ensures idempotency). The SDK generates
a request id if you do not pass one explicitly.</p></div></div><div class="code"><div class="wrapper"><span class="nv">$apiContext</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ApiContext</span><span class="p">(</span><span class="nv">$cred</span><span class="p">,</span> <span class="s1">&#39;Request&#39;</span> <span class="o">.</span> <span class="nb">time</span><span class="p">());</span></div></div></div><div class="segment"><a id="segment-9" name="segment-9" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-9" class="pilcrow"></a></div><div class="wrapper"><h3 id="create-payment">Create Payment</h3>
<p>Create a payment by posting to the APIService <p>Create a payment by posting to the APIService
using a valid apiContext (See bootstrap.php for more on <code>ApiContext</code>)
The return object contains the status;</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span> The return object contains the status;</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">create</span><span class="p">(</span><span class="nv">$apiContext</span><span class="p">);</span> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">create</span><span class="p">(</span><span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>

View File

@@ -9,27 +9,19 @@ API used: POST '/v1/payments/payment/<payment-id>/execute'.</p></div></div><div
<span class="k">use</span> <span class="nx">PayPal\Api\ExecutePayment</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\ExecutePayment</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\PaymentExecution</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\PaymentExecution</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Rest\ApiContext</span><span class="p">;</span>
<span class="nb">session_start</span><span class="p">();</span> <span class="nb">session_start</span><span class="p">();</span>
<span class="k">if</span><span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$_GET</span><span class="p">[</span><span class="s1">&#39;success&#39;</span><span class="p">])</span> <span class="o">&amp;&amp;</span> <span class="nv">$_GET</span><span class="p">[</span><span class="s1">&#39;success&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;true&#39;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span><span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$_GET</span><span class="p">[</span><span class="s1">&#39;success&#39;</span><span class="p">])</span> <span class="o">&amp;&amp;</span> <span class="nv">$_GET</span><span class="p">[</span><span class="s1">&#39;success&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;true&#39;</span><span class="p">)</span> <span class="p">{</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="api-context">Api Context</h3> </div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><p>Get the payment Object by passing paymentId
<p>Pass in a <code>ApiContext</code> object to authenticate
the call and to send a unique request id
(that ensures idempotency). The SDK generates
a request id if you do not pass one explicitly. </p></div></div><div class="code"><div class="wrapper"> <span class="nv">$apiContext</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ApiContext</span><span class="p">(</span><span class="nv">$cred</span><span class="p">);</span>
</div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><p>Get the payment Object by passing paymentId
payment id was previously stored in session in payment id was previously stored in session in
CreatePaymentUsingPayPal.php</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$paymentId</span> <span class="o">=</span> <span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">&#39;paymentId&#39;</span><span class="p">];</span> CreatePaymentUsingPayPal.php</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$paymentId</span> <span class="o">=</span> <span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">&#39;paymentId&#39;</span><span class="p">];</span>
<span class="nv">$payment</span> <span class="o">=</span> <span class="nx">Payment</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$paymentId</span><span class="p">);</span> <span class="nv">$payment</span> <span class="o">=</span> <span class="nx">Payment</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$paymentId</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
</div></div></div><div class="segment"><a id="segment-4" name="segment-4" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-4" class="pilcrow"></a></div><div class="wrapper"><p>PaymentExecution object includes information necessary </div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><p>PaymentExecution object includes information necessary
to execute a PayPal account payment. to execute a PayPal account payment.
The payer_id is added to the request query parameters The payer_id is added to the request query parameters
when the user is redirected from paypal back to your site</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$execution</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">PaymentExecution</span><span class="p">();</span> when the user is redirected from paypal back to your site</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$execution</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">PaymentExecution</span><span class="p">();</span>
<span class="nv">$execution</span><span class="o">-&gt;</span><span class="na">setPayer_id</span><span class="p">(</span><span class="nv">$_GET</span><span class="p">[</span><span class="s1">&#39;PayerID&#39;</span><span class="p">]);</span> <span class="nv">$execution</span><span class="o">-&gt;</span><span class="na">setPayer_id</span><span class="p">(</span><span class="nv">$_GET</span><span class="p">[</span><span class="s1">&#39;PayerID&#39;</span><span class="p">]);</span>
<span class="c1">//Execute the payment</span> <span class="c1">//Execute the payment</span></div></div></div><div class="segment"><a id="segment-4" name="segment-4" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-4" class="pilcrow"></a></div><div class="wrapper"><p>(See bootstrap.php for more on <code>ApiContext</code>)</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">execute</span><span class="p">(</span><span class="nv">$execution</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
<span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">execute</span><span class="p">(</span><span class="nv">$execution</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
<span class="k">echo</span> <span class="s2">&quot;&lt;html&gt;&lt;body&gt;&lt;pre&gt;&quot;</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;&lt;html&gt;&lt;body&gt;&lt;pre&gt;&quot;</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">toArray</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$payment</span><span class="o">-&gt;</span><span class="na">toArray</span><span class="p">());</span>

View File

@@ -7,15 +7,10 @@ by sending a GET request to the URI
The following code takes you through The following code takes you through
the process of retrieving a saved CreditCard</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span> the process of retrieving a saved CreditCard</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\CreditCard</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><p>The cardId can be obtained from a previous save credit <span class="k">use</span> <span class="nx">PayPal\Api\CreditCard</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><p>The cardId can be obtained from a previous save credit
card operation. Use $card->getId()</p></div></div><div class="code"><div class="wrapper"><span class="nv">$cardId</span> <span class="o">=</span> <span class="s2">&quot;CARD-5BT058015C739554AKE2GCEI&quot;</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><h3 id="authentication">Authentication</h3> card operation. Use $card->getId()</p></div></div><div class="code"><div class="wrapper"><span class="nv">$cardId</span> <span class="o">=</span> <span class="s2">&quot;CARD-5BT058015C739554AKE2GCEI&quot;</span><span class="p">;</span>
<p>Pass in a <code>OAuthTokenCredential</code> object <span class="c1">/// ### Retrieve card</span></div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><p>(See bootstrap.php for more on <code>ApiContext</code>)</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
explicilty to authenticate the call. <span class="nv">$card</span> <span class="o">=</span> <span class="nx">CreditCard</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$cardId</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
If you skip this step, the client id/secret
set in the config file will be used.</p></div></div><div class="code"><div class="wrapper"><span class="nx">CreditCard</span><span class="o">::</span><span class="na">setCredential</span><span class="p">(</span><span class="nv">$cred</span><span class="p">);</span>
<span class="c1">/// ### Retrieve card</span>
<span class="k">try</span> <span class="p">{</span>
<span class="nv">$card</span> <span class="o">=</span> <span class="nx">CreditCard</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$cardId</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception: &quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception: &quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>

View File

@@ -9,16 +9,14 @@ payments list.
API used: GET /v1/payments/payments</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span> API used: GET /v1/payments/payments</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span>
<span class="nv">$paymentId</span> <span class="o">=</span> <span class="s2">&quot;PAY-0XL713371A312273YKE2GCNI&quot;</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="authentication">Authentication</h3> <span class="nv">$paymentId</span> <span class="o">=</span> <span class="s2">&quot;PAY-0XL713371A312273YKE2GCNI&quot;</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="retrieve-payment">Retrieve payment</h3>
<p>Pass in a <code>OAuthTokenCredential</code> object
explicilty to authenticate the call. </p></div></div><div class="code"><div class="wrapper"><span class="nx">Payment</span><span class="o">::</span><span class="na">setCredential</span><span class="p">(</span><span class="nv">$cred</span><span class="p">);</span></div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><h3 id="retrieve-payment">Retrieve payment</h3>
<p>Retrieve the payment object by calling the <p>Retrieve the payment object by calling the
static <code>get</code> method static <code>get</code> method
on the Payment class by passing a valid on the Payment class by passing a valid
Payment ID</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span> Payment ID
<span class="nv">$payment</span> <span class="o">=</span> <span class="nx">Payment</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$paymentId</span><span class="p">);</span> (See bootstrap.php for more on <code>ApiContext</code>)</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
<span class="nv">$payment</span> <span class="o">=</span> <span class="nx">Payment</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$paymentId</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>

View File

@@ -5,16 +5,12 @@ details of completed Sale Transaction.
API used: /v1/payments/sale/{sale-id}</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span> API used: /v1/payments/sale/{sale-id}</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Sale</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Sale</span><span class="p">;</span>
<span class="nv">$saleId</span> <span class="o">=</span> <span class="s1">&#39;3RM92092UW5126232&#39;</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="authentication">Authentication</h3> <span class="nv">$saleId</span> <span class="o">=</span> <span class="s1">&#39;3RM92092UW5126232&#39;</span><span class="p">;</span>
<p>Pass in a <code>OAuthTokenCredential</code> object <span class="k">try</span> <span class="p">{</span> </div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="retrieve-the-sale-object">Retrieve the sale object</h3>
explicilty to authenticate the call.
If you skip this step, the client id/secret
set in the config file will be used. </p></div></div><div class="code"><div class="wrapper"><span class="nx">Sale</span><span class="o">::</span><span class="na">setCredential</span><span class="p">(</span><span class="nv">$cred</span><span class="p">);</span>
<span class="k">try</span> <span class="p">{</span> </div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><h3 id="retrieve-the-sale-object">Retrieve the sale object</h3>
<p>Pass the ID of the sale <p>Pass the ID of the sale
transaction from your payment resource.</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$sale</span> <span class="o">=</span> <span class="nx">Sale</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$saleId</span><span class="p">);</span> transaction from your payment resource.</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$sale</span> <span class="o">=</span> <span class="nx">Sale</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$saleId</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>

View File

@@ -7,19 +7,15 @@ Note various query parameters that you can
use to filter, and paginate through the use to filter, and paginate through the
payments list. payments list.
API used: GET /v1/payments/payments</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span> API used: GET /v1/payments/payments</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="authentication">Authentication</h3> <span class="k">use</span> <span class="nx">PayPal\Api\Payment</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="retrieve-payment">Retrieve payment</h3>
<p>Pass in a <code>OAuthTokenCredential</code> object
explicilty to authenticate the call.
If you skip this step, the client id/secret
set in the config file will be used. </p></div></div><div class="code"><div class="wrapper"><span class="nx">Payment</span><span class="o">::</span><span class="na">setCredential</span><span class="p">(</span><span class="nv">$cred</span><span class="p">);</span></div></div></div><div class="segment"><a id="segment-3" name="segment-3" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-3" class="pilcrow"></a></div><div class="wrapper"><h3 id="retrieve-payment">Retrieve payment</h3>
<p>Retrieve the PaymentHistory object by calling the <p>Retrieve the PaymentHistory object by calling the
static <code>get</code> method on the Payment class, static <code>get</code> method on the Payment class,
and pass a Map object that contains and pass a Map object that contains
query parameters for paginations and filtering. query parameters for paginations and filtering.
Refer the method doc for valid values for keys</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span> Refer the method doc for valid values for keys
<span class="nv">$payments</span> <span class="o">=</span> <span class="nx">Payment</span><span class="o">::</span><span class="na">all</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="s1">&#39;count&#39;</span> <span class="o">=&gt;</span> <span class="mi">10</span><span class="p">,</span> <span class="s1">&#39;start_index&#39;</span> <span class="o">=&gt;</span> <span class="mi">5</span><span class="p">));</span> (See bootstrap.php for more on <code>ApiContext</code>)</p></div></div><div class="code"><div class="wrapper"><span class="k">try</span> <span class="p">{</span>
<span class="nv">$payments</span> <span class="o">=</span> <span class="nx">Payment</span><span class="o">::</span><span class="na">all</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="s1">&#39;count&#39;</span> <span class="o">=&gt;</span> <span class="mi">10</span><span class="p">,</span> <span class="s1">&#39;start_index&#39;</span> <span class="o">=&gt;</span> <span class="mi">5</span><span class="p">),</span> <span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>

View File

@@ -6,8 +6,7 @@ using the Payments API.
API used: /v1/payments/sale/{sale-id}/refund</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span> API used: /v1/payments/sale/{sale-id}/refund</p></div></div><div class="code"><div class="wrapper"><span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">&#39;/../bootstrap.php&#39;</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Amount</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Amount</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Refund</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Refund</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">PayPal\Api\Sale</span><span class="p">;</span> <span class="k">use</span> <span class="nx">PayPal\Api\Sale</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="refund">Refund</h3>
<span class="k">use</span> <span class="nx">PayPal\Rest\ApiContext</span><span class="p">;</span></div></div></div><div class="segment"><a id="segment-2" name="segment-2" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-2" class="pilcrow"></a></div><div class="wrapper"><h3 id="refund">Refund</h3>
<p>Create a refund object indicating <p>Create a refund object indicating
refund amount</p></div></div><div class="code"><div class="wrapper"><span class="nv">$amt</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Amount</span><span class="p">();</span> refund amount</p></div></div><div class="code"><div class="wrapper"><span class="nv">$amt</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Amount</span><span class="p">();</span>
@@ -22,13 +21,10 @@ refund amount</p></div></div><div class="code"><div class="wrapper"><span class=
<p>A sale transaction. <p>A sale transaction.
Create a Sale object with the Create a Sale object with the
given sale transaction id.</p></div></div><div class="code"><div class="wrapper"><span class="nv">$sale</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Sale</span><span class="p">();</span> given sale transaction id.</p></div></div><div class="code"><div class="wrapper"><span class="nv">$sale</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Sale</span><span class="p">();</span>
<span class="nv">$sale</span><span class="o">-&gt;</span><span class="na">setId</span><span class="p">(</span><span class="nv">$saleId</span><span class="p">);</span></div></div></div><div class="segment"><a id="segment-4" name="segment-4" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-4" class="pilcrow"></a></div><div class="wrapper"><h3 id="api-context">Api Context</h3> <span class="nv">$sale</span><span class="o">-&gt;</span><span class="na">setId</span><span class="p">(</span><span class="nv">$saleId</span><span class="p">);</span>
<p>Pass in a <code>ApiContext</code> object to authenticate <span class="k">try</span> <span class="p">{</span> </div></div></div><div class="segment"><a id="segment-4" name="segment-4" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-4" class="pilcrow"></a></div><div class="wrapper"><p>Refund the sale
the call and to send a unique request id (See bootstrap.php for more on <code>ApiContext</code>)</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$sale</span><span class="o">-&gt;</span><span class="na">refund</span><span class="p">(</span><span class="nv">$refund</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
(that ensures idempotency). The SDK generates
a request id if you do not pass one explicitly. </p></div></div><div class="code"><div class="wrapper"><span class="nv">$apiContext</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ApiContext</span><span class="p">(</span><span class="nv">$cred</span><span class="p">,</span> <span class="s1">&#39;Request&#39;</span> <span class="o">.</span> <span class="nb">time</span><span class="p">());</span>
<span class="k">try</span> <span class="p">{</span> </div></div></div><div class="segment"><a id="segment-5" name="segment-5" class="section_anchor"></a><div class="comments"><div class="pilwrap"><a href="#segment-5" class="pilcrow"></a></div><div class="wrapper"><p>Refund the sale</p></div></div><div class="code"><div class="wrapper"> <span class="nv">$sale</span><span class="o">-&gt;</span><span class="na">refund</span><span class="p">(</span><span class="nv">$refund</span><span class="p">,</span> <span class="nv">$apiContext</span><span class="p">);</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">\PPConnectionException</span> <span class="nv">$ex</span><span class="p">)</span> <span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span> <span class="k">echo</span> <span class="s2">&quot;Exception:&quot;</span> <span class="o">.</span> <span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getMessage</span><span class="p">()</span> <span class="o">.</span> <span class="nx">PHP_EOL</span><span class="p">;</span>
<span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span> <span class="nb">var_dump</span><span class="p">(</span><span class="nv">$ex</span><span class="o">-&gt;</span><span class="na">getData</span><span class="p">());</span>

View File

@@ -10,7 +10,6 @@
// the Vault API. // the Vault API.
// API used: POST /v1/vault/credit-card // API used: POST /v1/vault/credit-card
use PayPal\Rest\ApiContext;
require __DIR__ . '/../bootstrap.php'; require __DIR__ . '/../bootstrap.php';
use PayPal\Api\CreditCard; use PayPal\Api\CreditCard;
@@ -28,20 +27,14 @@ $card->setCvv2("012");
$card->setFirst_name("Joe"); $card->setFirst_name("Joe");
$card->setLast_name("Shopper"); $card->setLast_name("Shopper");
// ### Api Context
// Pass in a `ApiContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
$apiContext = new ApiContext($cred, 'Request' . time());
// ### Save card // ### Save card
// Creates the credit card as a resource // Creates the credit card as a resource
// in the PayPal vault. The response contains // in the PayPal vault. The response contains
// an 'id' that you can use to refer to it // an 'id' that you can use to refer to it
// in the future payments. // in the future payments.
// (See bootstrap.php for more on `ApiContext`)
try { try {
$card->create(); $card->create($apiContext);
} catch (\PPConnectionException $ex) { } catch (\PPConnectionException $ex) {
echo "Exception:" . $ex->getMessage() . PHP_EOL; echo "Exception:" . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData()); var_dump($ex->getData());

View File

@@ -14,15 +14,10 @@ use PayPal\Api\CreditCard;
// card operation. Use $card->getId() // card operation. Use $card->getId()
$cardId = "CARD-5BT058015C739554AKE2GCEI"; $cardId = "CARD-5BT058015C739554AKE2GCEI";
// ### Authentication
// Pass in a `OAuthTokenCredential` object
// explicilty to authenticate the call.
// If you skip this step, the client id/secret
// set in the config file will be used.
CreditCard::setCredential($cred);
/// ### Retrieve card /// ### Retrieve card
// (See bootstrap.php for more on `ApiContext`)
try { try {
$card = CreditCard::get($cardId); $card = CreditCard::get($cardId, $apiContext);
} catch (\PPConnectionException $ex) { } catch (\PPConnectionException $ex) {
echo "Exception: " . $ex->getMessage() . PHP_EOL; echo "Exception: " . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData()); var_dump($ex->getData());

View File

@@ -9,12 +9,13 @@ class OAuthTokenCredentialTest extends PHPUnit_Framework_TestCase {
public function testGetAccessToken() { public function testGetAccessToken() {
$cred = new OAuthTokenCredential(Constants::CLIENT_ID, Constants::CLIENT_SECRET); $cred = new OAuthTokenCredential(Constants::CLIENT_ID, Constants::CLIENT_SECRET);
$config = \PPConfigManager::getInstance()->getConfigHashmap();
$token = $cred->getAccessToken(); $token = $cred->getAccessToken($config);
$this->assertNotNull($token); $this->assertNotNull($token);
// Check that we get the same token when issuing a new call before token expiry // Check that we get the same token when issuing a new call before token expiry
$newToken = $cred->getAccessToken(); $newToken = $cred->getAccessToken($config);
$this->assertNotNull($newToken); $this->assertNotNull($newToken);
$this->assertEquals($token, $newToken); $this->assertEquals($token, $newToken);
@@ -28,6 +29,6 @@ class OAuthTokenCredentialTest extends PHPUnit_Framework_TestCase {
public function testInvalidCredentials() { public function testInvalidCredentials() {
$this->setExpectedException('\PPConnectionException'); $this->setExpectedException('\PPConnectionException');
$cred = new OAuthTokenCredential('dummy', 'secret'); $cred = new OAuthTokenCredential('dummy', 'secret');
$this->assertNull($cred->getAccessToken()); $this->assertNull($cred->getAccessToken(\PPConfigManager::getInstance()->getConfigHashmap()));
} }
} }

View File

@@ -1,22 +1,21 @@
<?php <?php
// namespace PayPal\Test\Common; // namespace PayPal\Test\Common;
use PayPal\Common\ArrayUtil;
class ArrayUtilTest extends PHPUnit_Framework_TestCase { class ArrayUtilTest extends PHPUnit_Framework_TestCase {
public function testIsAssocArray() { public function testIsAssocArray() {
$arr = array(1, 2, 3); $arr = array(1, 2, 3);
$this->assertEquals(false, ArrayUtil::isAssocArray($arr)); $this->assertEquals(false, PPArrayUtil::isAssocArray($arr));
$arr = array( $arr = array(
'name' => 'John Doe', 'name' => 'John Doe',
'City' => 'San Jose' 'City' => 'San Jose'
); );
$this->assertEquals(true, ArrayUtil::isAssocArray($arr)); $this->assertEquals(true, PPArrayUtil::isAssocArray($arr));
$arr[] = 'CA'; $arr[] = 'CA';
$this->assertEquals(false, ArrayUtil::isAssocArray($arr)); $this->assertEquals(false, PPArrayUtil::isAssocArray($arr));
} }
} }

View File

@@ -2,9 +2,8 @@
// namespace PayPal\Test\Common; // namespace PayPal\Test\Common;
use PayPal\Common\Model;
class SimpleClass extends Model { class SimpleClass extends \PPModel {
public function setName($name) { public function setName($name) {
$this->name = $name; $this->name = $name;
@@ -21,7 +20,7 @@ class SimpleClass extends Model {
} }
} }
class ArrayClass extends Model { class ArrayClass extends \PPModel {
public function setName($name) { public function setName($name) {
$this->name = $name; $this->name = $name;
@@ -48,7 +47,7 @@ class ArrayClass extends Model {
} }
} }
class NestedClass extends Model { class NestedClass extends \PPModel {
public function setId($id) { public function setId($id) {
$this->id = $id; $this->id = $id;
@@ -64,6 +63,10 @@ class NestedClass extends Model {
public function setInfo($info) { public function setInfo($info) {
$this->info = $info; $this->info = $info;
} }
/**
*
* @return ArrayClass
*/
public function getInfo() { public function getInfo() {
return $this->info; return $this->info;
} }

View File

@@ -5,7 +5,7 @@ use PayPal\Common\UserAgent;
class UserAgentTest extends PHPUnit_Framework_TestCase { class UserAgentTest extends PHPUnit_Framework_TestCase {
public function testGetValue() { public function testGetValue() {
$ua = UserAgent::getValue(); $ua = PPUserAgent::getValue("name", "version");
list($id, $version, $features) = sscanf($ua, "PayPalSDK/%s %s (%s)"); list($id, $version, $features) = sscanf($ua, "PayPalSDK/%s %s (%s)");
// Check that we pass the useragent in the expected format // Check that we pass the useragent in the expected format
@@ -13,6 +13,9 @@ class UserAgentTest extends PHPUnit_Framework_TestCase {
$this->assertNotNull($version); $this->assertNotNull($version);
$this->assertNotNull($features); $this->assertNotNull($features);
$this->assertEquals("name", $id);
$this->assertEquals("version", $version);
// Check that we pass in these mininal features // Check that we pass in these mininal features
$this->assertThat($features, $this->stringContains("OS=")); $this->assertThat($features, $this->stringContains("OS="));
$this->assertThat($features, $this->stringContains("Bit=")); $this->assertThat($features, $this->stringContains("Bit="));