Skip to content
This repository has been archived by the owner on Aug 24, 2022. It is now read-only.

Commit

Permalink
Add support for PayPal, Sofort and 'leap of faith' payment methods.
Browse files Browse the repository at this point in the history
  • Loading branch information
rvdsteege committed Apr 6, 2017
1 parent 9424de6 commit 323b065
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 18 deletions.
25 changes: 7 additions & 18 deletions src/Gateway.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,12 @@ public function get_issuer_field() {
*/
public function get_supported_payment_methods() {
return array(
Pronamic_WP_Pay_PaymentMethods::IDEAL,
Pronamic_WP_Pay_PaymentMethods::BANK_TRANSFER,
Pronamic_WP_Pay_PaymentMethods::BANCONTACT,
Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD,
Pronamic_WP_Pay_PaymentMethods::IDEAL,
Pronamic_WP_Pay_PaymentMethods::PAYPAL,
Pronamic_WP_Pay_PaymentMethods::SOFORT,
);
}

Expand Down Expand Up @@ -123,24 +125,11 @@ public function start( Pronamic_Pay_Payment $payment ) {

$this->set_payment_method( $payment_method );

switch ( $payment_method ) {
case Pronamic_WP_Pay_PaymentMethods::BANK_TRANSFER :
$transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::OVERBOEKING;

break;
case Pronamic_WP_Pay_PaymentMethods::IDEAL :
$transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::IDEAL;

break;
case Pronamic_WP_Pay_PaymentMethods::BANCONTACT :
case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH :
$transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::MISTER_CASH;

break;
case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD :
$transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::CREDIT_CARD;
$transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::transform( $payment_method );

break;
if ( empty( $transaction_request->payment ) && ! empty( $payment_method ) ) {
// Leap of faith if the WordPress payment method could not transform to a Mollie method?
$transaction_request->payment = $payment_method;
}

$transaction_request->set_purchase_id( $purchase_id );
Expand Down
34 changes: 34 additions & 0 deletions src/PaymentMethods.php
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,38 @@ class Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods {
* @var string
*/
const PODIUM_CADEAUKAART = 'podium';

/**
* Payments methods map.
*
* @var array
*/
private static $map = array(
Pronamic_WP_Pay_PaymentMethods::BANK_TRANSFER => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::OVERBOEKING,
Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::CREDIT_CARD,
Pronamic_WP_Pay_PaymentMethods::BANCONTACT => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::MISTER_CASH,
Pronamic_WP_Pay_PaymentMethods::MISTER_CASH => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::MISTER_CASH,
Pronamic_WP_Pay_PaymentMethods::PAYPAL => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::PAYPAL_EXPRESS_CHECKOUT,
Pronamic_WP_Pay_PaymentMethods::SOFORT => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::SOFORT,
Pronamic_WP_Pay_PaymentMethods::IDEAL => Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::IDEAL,
);

/**
* Transform WordPress payment method to Sisow method.
*
* @since unreleased
* @param string $method
* @return string
*/
public static function transform( $payment_method ) {
if ( ! is_scalar( $payment_method ) ) {
return null;
}

if ( isset( self::$map[ $payment_method ] ) ) {
return self::$map[ $payment_method ];
}

return null;
}
}

0 comments on commit 323b065

Please sign in to comment.