diff --git a/.gitignore b/.gitignore index 437354b..bac603c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ build .project .settings .buildpath +atlassian-ide-plugin.xml *.bak # Composer diff --git a/.travis.yml b/.travis.yml index 3510004..a0c7ff0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,6 @@ php: - 5.5 - 5.6 - hhvm -env: - - CONFIGURATION_FILE=phpunit.xml - - CONFIGURATION_FILE=phpunit.integration.xml matrix: allow_failures: - php: hhvm @@ -18,7 +15,7 @@ before_script: script: - mkdir build - mkdir build/coverage - - phpunit -c $CONFIGURATION_FILE + - phpunit after_success: - php vendor/bin/coveralls -v -c .coveralls.yml notifications: diff --git a/README.md b/README.md index 26915e0..0b065a8 100644 --- a/README.md +++ b/README.md @@ -104,10 +104,26 @@ use PayPal\Api\Payment; ## SDK Configuration 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 +* 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 * [API Reference](https://developer.paypal.com/webapps/developer/docs/api/) diff --git a/composer.json b/composer.json index 4f89af9..c48fc9f 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": ">=5.3.0", "ext-curl": "*", "ext-json": "*", - "paypal/sdk-core-php": "2.4.*" + "paypal/sdk-core-php": "2.5.*" }, "require-dev": { "phpunit/phpunit": "3.7.*" @@ -24,5 +24,5 @@ "psr-0": { "PayPal": "lib/" } - } + } } diff --git a/release_notes.md b/release_notes.md index 3bd67e0..d7b9089 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,6 +1,18 @@ 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 ----- * Invoicing API support added diff --git a/sample/composer.json b/sample/composer.json index a743c50..305f340 100644 --- a/sample/composer.json +++ b/sample/composer.json @@ -9,6 +9,6 @@ "php": ">=5.3.0", "ext-curl": "*", "ext-json": "*", - "paypal/rest-api-sdk-php" : "0.8.*" + "paypal/rest-api-sdk-php" : "0.11.*" } } diff --git a/sample/payments/CreatePayment.php b/sample/payments/CreatePayment.php index 34ed64b..36ec3d8 100644 --- a/sample/payments/CreatePayment.php +++ b/sample/payments/CreatePayment.php @@ -24,12 +24,12 @@ use PayPal\Api\Transaction; // used to fund a payment. $card = new CreditCard(); $card->setType("visa") - ->setNumber("4417119669820331") - ->setExpireMonth("11") - ->setExpireYear("2019") - ->setCvv2("012") - ->setFirstName("Joe") - ->setLastName("Shopper"); + ->setNumber("4417119669820331") + ->setExpireMonth("11") + ->setExpireYear("2019") + ->setCvv2("012") + ->setFirstName("Joe") + ->setLastName("Shopper"); // ### FundingInstrument // 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. $payer = new Payer(); $payer->setPaymentMethod("credit_card") - ->setFundingInstruments(array($fi)); + ->setFundingInstruments(array($fi)); // ### Itemized information // (Optional) Lets you specify item wise // information $item1 = new Item(); $item1->setName('Ground Coffee 40 oz') - ->setCurrency('USD') - ->setQuantity(1) - ->setPrice('7.50'); + ->setDescription('Ground Coffee 40 oz') + ->setCurrency('USD') + ->setQuantity(1) + ->setTax('0.30') + ->setPrice('7.50'); $item2 = new Item(); $item2->setName('Granola bars') - ->setCurrency('USD') - ->setQuantity(5) - ->setPrice('2.00'); + ->setDescription('Granola Bars with Peanuts') + ->setCurrency('USD') + ->setQuantity(5) + ->setTax('0.20') + ->setPrice('2.00'); $itemList = new ItemList(); $itemList->setItems(array($item1, $item2)); @@ -69,8 +73,8 @@ $itemList->setItems(array($item1, $item2)); // charges etc. $details = new Details(); $details->setShipping('1.20') - ->setTax('1.30') - ->setSubtotal('17.50'); + ->setTax('1.30') + ->setSubtotal('17.50'); // ### Amount // Lets you specify a payment amount. @@ -78,8 +82,8 @@ $details->setShipping('1.20') // such as shipping, tax. $amount = new Amount(); $amount->setCurrency("USD") - ->setTotal("20.00") - ->setDetails($details); + ->setTotal("20.00") + ->setDetails($details); // ### Transaction // A transaction defines the contract of a @@ -87,39 +91,39 @@ $amount->setCurrency("USD") // is fulfilling it. $transaction = new Transaction(); $transaction->setAmount($amount) - ->setItemList($itemList) - ->setDescription("Payment description"); + ->setItemList($itemList) + ->setDescription("Payment description"); // ### Payment // A Payment Resource; create one using // the above types and intent set to sale 'sale' $payment = new Payment(); $payment->setIntent("sale") - ->setPayer($payer) - ->setTransactions(array($transaction)); + ->setPayer($payer) + ->setTransactions(array($transaction)); // ### Create Payment // Create a payment by calling the payment->create() method // with a valid ApiContext (See bootstrap.php for more on `ApiContext`) // The return object contains the state. try { - $payment->create($apiContext); + $payment->create($apiContext); } catch (PayPal\Exception\PPConnectionException $ex) { - echo "Exception: " . $ex->getMessage() . PHP_EOL; - var_dump($ex->getData()); - exit(1); + echo "Exception: " . $ex->getMessage() . PHP_EOL; + var_dump($ex->getData()); + exit(1); } ?> - Direct Credit card payments + Direct Credit card payments -
- Created payment: - getId();?> -
+
+ Created payment: + getId();?> +
toArray());?>
- Back + Back - + \ No newline at end of file diff --git a/tests/sdk_config.ini b/tests/sdk_config.ini index f73b92a..10bcb6e 100644 --- a/tests/sdk_config.ini +++ b/tests/sdk_config.ini @@ -23,13 +23,13 @@ service.EndPoint="https://api.sandbox.paypal.com" log.LogEnabled=true -# When using a relative path, the log file is created -# relative to the .php file that is the entry point -# for this request. You can also provide an absolute -# path here +; When using a relative path, the log file is created +; relative to the .php file that is the entry point +; for this request. You can also provide an absolute +; path here log.FileName=PayPal.log -# Logging level can be one of FINE, INFO, WARN or ERROR -# Logging is most verbose in the 'FINE' level and -# decreases as you proceed towards ERROR +; Logging level can be one of FINE, INFO, WARN or ERROR +; Logging is most verbose in the 'FINE' level and +; decreases as you proceed towards ERROR log.LogLevel=FINE