Updated version of SDK Core

- Updated version
- Fixed Testing Bugs
- Updated README
- Updated Release note
This commit is contained in:
Jay Patel
2014-09-24 13:41:32 -05:00
parent 6f59a4186b
commit 0ed9c26d02
8 changed files with 77 additions and 47 deletions

1
.gitignore vendored
View File

@@ -8,6 +8,7 @@ build
.project .project
.settings .settings
.buildpath .buildpath
atlassian-ide-plugin.xml
*.bak *.bak
# Composer # Composer

View File

@@ -5,9 +5,6 @@ php:
- 5.5 - 5.5
- 5.6 - 5.6
- hhvm - hhvm
env:
- CONFIGURATION_FILE=phpunit.xml
- CONFIGURATION_FILE=phpunit.integration.xml
matrix: matrix:
allow_failures: allow_failures:
- php: hhvm - php: hhvm
@@ -18,7 +15,7 @@ before_script:
script: script:
- mkdir build - mkdir build
- mkdir build/coverage - mkdir build/coverage
- phpunit -c $CONFIGURATION_FILE - phpunit
after_success: after_success:
- php vendor/bin/coveralls -v -c .coveralls.yml - php vendor/bin/coveralls -v -c .coveralls.yml
notifications: notifications:

View File

@@ -105,9 +105,25 @@ use PayPal\Api\Payment;
The samples in this repo pick the SDK configuration from the `sdk_config.ini` file. If you do not want to use an ini file or want to pick your configuration dynamically, you can use the `$apiContext->setConfig()` method to pass in the configuration as a hashmap. See the `sample/bootstrap.php` file for an example. The samples in this repo pick the SDK configuration from the `sdk_config.ini` file. If you do not want to use an ini file or want to pick your configuration dynamically, you can use the `$apiContext->setConfig()` method to pass in the configuration as a hashmap. See the `sample/bootstrap.php` file for an example.
## Testing
There are two kinds of tests that we include in our sdk package. Unit tests, and Integration Tests.
* **Unit Tests**
* Unit tests can be executed by running this command `phpunit` at Paypal SDK root location.
* It executes the tests with configuration stored in `phpunit.xml` file.
* **Integration Tests**
* Integration tests make curl requests to sandbox environments by default. It would test both unit as well as integration tests. To execute, run this command `phpunit -c phpunit.integration.xml` at Paypal SDK root location.
* It executes the tests with configuration stored in `phpunit.integration.xml` file.
* The configurations could be changed from `tests\sdk_config.ini` file.
## Contributing ## Contributing
* If you find solution to an [issue/improvements](https://github.com/paypal/rest-api-sdk-php/issues) in sdk that would be helpful to everyone, feel free to send us a pull request.
* The ideal approach to create a fix would be to fork the repository, create a branch in your repository, and make a pull request out of it.
* It is desirable if there is enough comments/documentation and Tests included in the pull request.
* For general idea of contribution, please follow the guidelines mentioned [here](https://guides.github.com/activities/contributing-to-open-source/).
## More help ## More help
* [API Reference](https://developer.paypal.com/webapps/developer/docs/api/) * [API Reference](https://developer.paypal.com/webapps/developer/docs/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": "2.4.*" "paypal/sdk-core-php": "2.5.*"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "3.7.*" "phpunit/phpunit": "3.7.*"

View File

@@ -1,6 +1,18 @@
PayPal PHP SDK release notes PayPal PHP SDK release notes
============================ ============================
v0.11.0
----
* Ability for PUT and PATCH requests
* Invoice number, custom and soft descriptor
* Order API and tests, more Authorization tests
* remove references to sdk-packages
* patch for retrieving paid invoices
* Shipping address docs patch
* Remove @array annotation
* Validate return cancel url
* type hinting, comment cleaning, and getters and setters for Shipping
v0.8.0 v0.8.0
----- -----
* Invoicing API support added * Invoicing API support added

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.8.*" "paypal/rest-api-sdk-php" : "0.11.*"
} }
} }

View File

@@ -24,12 +24,12 @@ use PayPal\Api\Transaction;
// used to fund a payment. // used to fund a payment.
$card = new CreditCard(); $card = new CreditCard();
$card->setType("visa") $card->setType("visa")
->setNumber("4417119669820331") ->setNumber("4417119669820331")
->setExpireMonth("11") ->setExpireMonth("11")
->setExpireYear("2019") ->setExpireYear("2019")
->setCvv2("012") ->setCvv2("012")
->setFirstName("Joe") ->setFirstName("Joe")
->setLastName("Shopper"); ->setLastName("Shopper");
// ### FundingInstrument // ### FundingInstrument
// A resource representing a Payer's funding instrument. // A resource representing a Payer's funding instrument.
@@ -44,21 +44,25 @@ $fi->setCreditCard($card);
// to 'credit_card' and add an array of funding instruments. // to 'credit_card' and add an array of funding instruments.
$payer = new Payer(); $payer = new Payer();
$payer->setPaymentMethod("credit_card") $payer->setPaymentMethod("credit_card")
->setFundingInstruments(array($fi)); ->setFundingInstruments(array($fi));
// ### Itemized information // ### Itemized information
// (Optional) Lets you specify item wise // (Optional) Lets you specify item wise
// information // information
$item1 = new Item(); $item1 = new Item();
$item1->setName('Ground Coffee 40 oz') $item1->setName('Ground Coffee 40 oz')
->setCurrency('USD') ->setDescription('Ground Coffee 40 oz')
->setQuantity(1) ->setCurrency('USD')
->setPrice('7.50'); ->setQuantity(1)
->setTax('0.30')
->setPrice('7.50');
$item2 = new Item(); $item2 = new Item();
$item2->setName('Granola bars') $item2->setName('Granola bars')
->setCurrency('USD') ->setDescription('Granola Bars with Peanuts')
->setQuantity(5) ->setCurrency('USD')
->setPrice('2.00'); ->setQuantity(5)
->setTax('0.20')
->setPrice('2.00');
$itemList = new ItemList(); $itemList = new ItemList();
$itemList->setItems(array($item1, $item2)); $itemList->setItems(array($item1, $item2));
@@ -69,8 +73,8 @@ $itemList->setItems(array($item1, $item2));
// charges etc. // charges etc.
$details = new Details(); $details = new Details();
$details->setShipping('1.20') $details->setShipping('1.20')
->setTax('1.30') ->setTax('1.30')
->setSubtotal('17.50'); ->setSubtotal('17.50');
// ### Amount // ### Amount
// Lets you specify a payment amount. // Lets you specify a payment amount.
@@ -78,8 +82,8 @@ $details->setShipping('1.20')
// such as shipping, tax. // such as shipping, tax.
$amount = new Amount(); $amount = new Amount();
$amount->setCurrency("USD") $amount->setCurrency("USD")
->setTotal("20.00") ->setTotal("20.00")
->setDetails($details); ->setDetails($details);
// ### Transaction // ### Transaction
// A transaction defines the contract of a // A transaction defines the contract of a
@@ -87,39 +91,39 @@ $amount->setCurrency("USD")
// is fulfilling it. // is fulfilling it.
$transaction = new Transaction(); $transaction = new Transaction();
$transaction->setAmount($amount) $transaction->setAmount($amount)
->setItemList($itemList) ->setItemList($itemList)
->setDescription("Payment description"); ->setDescription("Payment description");
// ### Payment // ### Payment
// A Payment Resource; create one using // A Payment Resource; create one using
// the above types and intent set to sale 'sale' // the above types and intent set to sale 'sale'
$payment = new Payment(); $payment = new Payment();
$payment->setIntent("sale") $payment->setIntent("sale")
->setPayer($payer) ->setPayer($payer)
->setTransactions(array($transaction)); ->setTransactions(array($transaction));
// ### Create Payment // ### Create Payment
// Create a payment by calling the payment->create() method // Create a payment by calling the payment->create() method
// with a valid ApiContext (See bootstrap.php for more on `ApiContext`) // with a valid ApiContext (See bootstrap.php for more on `ApiContext`)
// The return object contains the state. // The return object contains the state.
try { try {
$payment->create($apiContext); $payment->create($apiContext);
} catch (PayPal\Exception\PPConnectionException $ex) { } catch (PayPal\Exception\PPConnectionException $ex) {
echo "Exception: " . $ex->getMessage() . PHP_EOL; echo "Exception: " . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData()); var_dump($ex->getData());
exit(1); exit(1);
} }
?> ?>
<html> <html>
<head> <head>
<title>Direct Credit card payments</title> <title>Direct Credit card payments</title>
</head> </head>
<body> <body>
<div> <div>
Created payment: Created payment:
<?php echo $payment->getId();?> <?php echo $payment->getId();?>
</div> </div>
<pre><?php var_dump($payment->toArray());?></pre> <pre><?php var_dump($payment->toArray());?></pre>
<a href='../index.html'>Back</a> <a href='../index.html'>Back</a>
</body> </body>
</html> </html>

View File

@@ -23,13 +23,13 @@ service.EndPoint="https://api.sandbox.paypal.com"
log.LogEnabled=true log.LogEnabled=true
# When using a relative path, the log file is created ; When using a relative path, the log file is created
# relative to the .php file that is the entry point ; relative to the .php file that is the entry point
# for this request. You can also provide an absolute ; for this request. You can also provide an absolute
# path here ; path here
log.FileName=PayPal.log log.FileName=PayPal.log
# Logging level can be one of FINE, INFO, WARN or ERROR ; Logging level can be one of FINE, INFO, WARN or ERROR
# Logging is most verbose in the 'FINE' level and ; Logging is most verbose in the 'FINE' level and
# decreases as you proceed towards ERROR ; decreases as you proceed towards ERROR
log.LogLevel=FINE log.LogLevel=FINE