Skip to content

Commit

Permalink
Merge branch 'release/2.0.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
rvdsteege committed Dec 22, 2019
2 parents 73c4ae4 + 0d0a39a commit 7ea58d8
Show file tree
Hide file tree
Showing 14 changed files with 217 additions and 74 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
@@ -1,3 +1,5 @@
*.http text eol=crlf

/bin export-ignore
/tests export-ignore
/.gitattributes export-ignore
Expand Down
1 change: 1 addition & 0 deletions .scrutinizer.yml
@@ -1,5 +1,6 @@
build:
environment:
php: 7.3.0
variables:
WP_TESTS_DB_NAME: 'wp_phpunit_tests'
WP_TESTS_DB_USER: 'root'
Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Expand Up @@ -7,6 +7,12 @@ This projects adheres to [Semantic Versioning](http://semver.org/) and [Keep a C
## [Unreleased][unreleased]
-

## [2.0.4] - 2019-12-22
- Added URL to manual in gateway settings.
- Improved error handling with exceptions.
- Updated output fields to use payment.
- Updated payment status class name.

## [2.0.3] - 2019-08-27
- Updated packages.

Expand Down Expand Up @@ -69,7 +75,8 @@ This projects adheres to [Semantic Versioning](http://semver.org/) and [Keep a C
## [1.0.0] - 2015-01-19
- First release.

[unreleased]: https://github.com/wp-pay-gateways/buckaroo/compare/2.0.3...HEAD
[unreleased]: https://github.com/wp-pay-gateways/buckaroo/compare/2.0.4...HEAD
[2.0.4]: https://github.com/wp-pay-gateways/buckaroo/compare/2.0.3...2.0.4
[2.0.3]: https://github.com/wp-pay-gateways/buckaroo/compare/2.0.2...2.0.3
[2.0.2]: https://github.com/wp-pay-gateways/buckaroo/compare/2.0.1...2.0.2
[2.0.1]: https://github.com/wp-pay-gateways/buckaroo/compare/2.0.0...2.0.1
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "buckaroo",
"version": "2.0.3",
"version": "2.0.4",
"description": "Buckaroo driver for the WordPress payment processing library.",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion phpcs.xml.dist
Expand Up @@ -3,7 +3,7 @@
<ruleset name="WordPress Pay Gateway: Buckaroo rules">
<config name="minimum_supported_wp_version" value="4.7" />

<config name="testVersion" value="5.3-" />
<config name="testVersion" value="5.6-" />

<file>.</file>

Expand Down
30 changes: 3 additions & 27 deletions src/Client.php
Expand Up @@ -2,16 +2,14 @@

namespace Pronamic\WordPress\Pay\Gateways\Buckaroo;

use WP_Error;

/**
* Title: Buckaroo client
* Description:
* Copyright: 2005-2019 Pronamic
* Company: Pronamic
*
* @author Remco Tolsma
* @version 2.0.0
* @version 2.0.4
* @since 1.0.0
*/
class Client {
Expand Down Expand Up @@ -177,14 +175,6 @@ class Client {
*/
private $payment_id;

/**
* Error.
*
* @since 1.2.6
* @var WP_Error
*/
private $error;

/**
* Constructs and initialize a iDEAL kassa object
*/
Expand All @@ -194,16 +184,6 @@ public function __construct() {
$this->requested_services = array();
}

/**
* Get error.
*
* @since 1.2.6
* @return WP_Error
*/
public function get_error() {
return $this->error;
}

/**
* Get the payment server URL
*
Expand Down Expand Up @@ -479,19 +459,15 @@ public function get_issuers() {
$error_msg = __( 'Unable to retrieve issuers from Buckaroo.', 'pronamic_ideal' );

if ( 200 !== wp_remote_retrieve_response_code( $result ) ) {
$this->error = new WP_Error( 'buckaroo_error', $error_msg, $data );

return $issuers;
throw new \Exception( $error_msg );
}

if ( isset( $data['BRQ_APIRESULT'] ) && 'Fail' === $data['BRQ_APIRESULT'] ) {
if ( isset( $data['BRQ_APIERRORMESSAGE'] ) ) {
$error_msg = sprintf( '%s %s', $error_msg, $data['BRQ_APIERRORMESSAGE'] );
}

$this->error = new WP_Error( 'buckaroo_error', $error_msg, $data );

return $issuers;
throw new \Exception( $error_msg );
}

if ( ! isset( $data['BRQ_SERVICES'] ) ) {
Expand Down
33 changes: 19 additions & 14 deletions src/Gateway.php
Expand Up @@ -14,7 +14,7 @@
* Company: Pronamic
*
* @author Remco Tolsma
* @version 2.0.2
* @version 2.0.4
* @since 1.0.0
*/
class Gateway extends Core_Gateway {
Expand Down Expand Up @@ -56,17 +56,17 @@ public function __construct( Config $config ) {
public function get_issuers() {
$groups = array();

$result = $this->client->get_issuers();
try {
$result = $this->client->get_issuers();

if ( $result ) {
$groups[] = array(
'options' => $result,
);

return $groups;
} catch ( \Exception $e ) {
$this->error = new \WP_Error( 'buckaroo', $e->getMessage() );
}

$this->error = $this->client->get_error();
return $groups;
}

/**
Expand Down Expand Up @@ -95,7 +95,20 @@ public function get_supported_payment_methods() {
*/
public function start( Payment $payment ) {
$payment->set_action_url( $this->client->get_payment_server_url() );
}

/**
* Get output HTML
*
* @param Payment $payment Payment.
*
* @return string
*
* @see Core_Gateway::get_output_html()
* @since 1.1.1
* @version 2.0.4
*/
public function get_output_fields( Payment $payment ) {
$payment_method = $payment->get_method();

switch ( $payment_method ) {
Expand Down Expand Up @@ -149,15 +162,7 @@ public function start( Payment $payment ) {
$this->client->set_return_cancel_url( $payment->get_return_url() );
$this->client->set_return_error_url( $payment->get_return_url() );
$this->client->set_return_reject_url( $payment->get_return_url() );
}

/**
* Get output HTML
*
* @since 1.1.1
* @see Pronamic_WP_Pay_Gateway::get_output_html()
*/
public function get_output_fields() {
return $this->client->get_fields();
}

Expand Down
4 changes: 3 additions & 1 deletion src/Integration.php
Expand Up @@ -11,7 +11,7 @@
* Company: Pronamic
*
* @author Reüel van der Steege
* @version 2.0.0
* @version 2.0.4
* @since 1.0.0
*/
class Integration extends AbstractIntegration {
Expand All @@ -28,6 +28,8 @@ public function __construct() {
'webhook_no_config',
);

$this->set_manual_url( __( 'https://www.pronamic.eu/support/how-to-connect-buckaroo-with-wordpress-via-pronamic-pay/', 'pronamic_ideal' ) );

// Actions
$function = array( __NAMESPACE__ . '\Listener', 'listen' );

Expand Down
4 changes: 2 additions & 2 deletions src/Statuses.php
Expand Up @@ -2,7 +2,7 @@

namespace Pronamic\WordPress\Pay\Gateways\Buckaroo;

use Pronamic\WordPress\Pay\Core\Statuses as Core_Statuses;
use Pronamic\WordPress\Pay\Payments\PaymentStatus as Core_Statuses;

/**
* Title: Buckaroo statuses constants
Expand All @@ -11,7 +11,7 @@
* Company: Pronamic
*
* @author Remco Tolsma
* @version 2.0.0
* @version 2.0.4
* @since 1.0.0
*/
class Statuses {
Expand Down

Large diffs are not rendered by default.

85 changes: 85 additions & 0 deletions tests/src/ClientTest.php
@@ -1,13 +1,98 @@
<?php
/**
* Client test
*
* @author Pronamic <info@pronamic.eu>
* @copyright 2005-2019 Pronamic
* @license GPL-3.0-or-later
* @package Pronamic\WordPress\Pay\Gateways\Buckaroo
*/

namespace Pronamic\WordPress\Pay\Gateways\Buckaroo;

use WP_Error;
use WP_Http;

/**
* Title: Buckaroo client tests
* Description:
* Copyright: 2005-2019 Pronamic
* Company: Pronamic
*
* @author Remco Tolsma
* @version 2.0.4
*/
class ClientTest extends \WP_UnitTestCase {
/**
* Mock HTTP responses.
*
* @var array
*/
private $mock_http_responses;

/**
* Setup.
*/
public function setUp() {
parent::setUp();

$this->mock_http_responses = array();

// Mock HTTP response.
add_filter( 'pre_http_request', array( $this, 'pre_http_request' ), 10, 3 );
}

/**
* Mock HTTP response.
*
* @param string $url URL.
* @param string $file File with HTTP response.
*/
public function mock_http_response( $url, $file ) {
$this->mock_http_responses[ $url ] = $file;
}

/**
* Pre HTTP request
*
* @link https://github.com/WordPress/WordPress/blob/3.9.1/wp-includes/class-http.php#L150-L164
*
* @param false|array|WP_Error $preempt Whether to preempt an HTTP request's return value. Default false.
* @param array $r HTTP request arguments.
* @param string $url The request URL.
*
* @return array
*/
public function pre_http_request( $preempt, $r, $url ) {
if ( ! isset( $this->mock_http_responses[ $url ] ) ) {
return $preempt;
}

$file = $this->mock_http_responses[ $url ];

unset( $this->mock_http_responses[ $url ] );

$response = file_get_contents( $file, true );

$processed_response = WP_Http::processResponse( $response );

$processed_headers = WP_Http::processHeaders( $processed_response['headers'], $url );

$processed_headers['body'] = $processed_response['body'];

return $processed_headers;
}

/**
* Test client.
*/
public function test_client() {
$client = new Client();
$client->set_website_key( getenv( 'BUCKAROO_WEBSITE_KEY' ) );
$client->set_secret_key( getenv( 'BUCKAROO_SECRET_KEY' ) );

$this->mock_http_response( 'https://testcheckout.buckaroo.nl/nvp/?op=TransactionRequestSpecification', __DIR__ . '/../http/testcheckout-buckaroo-nl-nvp-op-TransactionRequestSpecification-ok.http' );

$issuers = $client->get_issuers();

$this->assertInternalType( 'array', $issuers );
Expand Down
16 changes: 12 additions & 4 deletions tests/src/SignatureSortingTest.php
@@ -1,4 +1,12 @@
<?php
/**
* Signature sorting test
*
* @author Pronamic <info@pronamic.eu>
* @copyright 2005-2019 Pronamic
* @license GPL-3.0-or-later
* @package Pronamic\WordPress\Pay\Gateways\Buckaroo
*/

namespace Pronamic\WordPress\Pay\Gateways\Buckaroo;

Expand All @@ -10,7 +18,7 @@
*
* @link http://pronamic.nl/wp-content/uploads/2013/04/BPE-3.0-Gateway-HTML.1.02.pdf
* @author Remco Tolsma
* @version 2.0.0
* @version 2.0.4
*/
class SignatureSortingTest extends \WP_UnitTestCase {
/**
Expand All @@ -34,14 +42,14 @@ public function test_signature_sorting() {
'brq_websitekey' => '123456',
);

// Sort
// Sort.
$data = Security::sort( $data );

// Keys
// Keys.
$keys_data = implode( "\n", array_keys( $data ) );
$keys_expected = implode( "\n", array_keys( $expected ) );

// Assert
// Assert.
$this->assertEquals( $keys_expected, $keys_data );
}
}

0 comments on commit 7ea58d8

Please sign in to comment.