-
Notifications
You must be signed in to change notification settings - Fork 3
/
gateway-buckaroo-payconiq.php
77 lines (70 loc) · 2.17 KB
/
gateway-buckaroo-payconiq.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
require_once __DIR__ . '/library/api/paymentmethods/payconiq/payconiq.php';
/**
* @package Buckaroo
*/
class WC_Gateway_Buckaroo_Payconiq extends WC_Gateway_Buckaroo {
const PAYMENT_CLASS = BuckarooPayconiq::class;
public function __construct() {
$this->id = 'buckaroo_payconiq';
$this->title = 'Payconiq';
$this->has_fields = false;
$this->method_title = 'Buckaroo Payconiq';
$this->setIcon( '24x24/payconiq.png', 'svg/payconiq.svg' );
parent::__construct();
$this->addRefundSupport();
}
/**
* Can the order be refunded
*
* @param integer $order_id
* @param integer $amount defaults to null
* @param string $reason
* @return callable|string function or error
*/
public function process_refund( $order_id, $amount = null, $reason = '' ) {
return $this->processDefaultRefund( $order_id, $amount, $reason, true );
}
/**
* Process payment
*
* @param integer $order_id
* @return callable fn_buckaroo_process_response()
*/
public function process_payment( $order_id ) {
$order = getWCOrder( $order_id );
/** @var BuckarooPayconiq */
$payconiq = $this->createDebitRequest( $order );
$response = $payconiq->Pay();
return fn_buckaroo_process_response( $this, $response );
}
/**
* Check response data
*
* @access public
*/
public function response_handler() {
$GLOBALS['plugin_id'] = $this->plugin_id . $this->id . '_settings';
$result = fn_buckaroo_process_response( $this );
$order_id = isset( $_GET['order_id'] ) && is_scalar( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : false;
if ( ! is_null( $result ) ) {
wp_safe_redirect( $result['redirect'] );
} elseif ( $order_id ) {
// if we are here we are the redirect from the "cancel payment" link
// So we have to cancel the payment.
$order = new WC_Order( $order_id );
if ( isset( $order ) ) {
$order->update_status( 'cancelled', __( '890', 'wc-buckaroo-bpe-gateway' ) );
wc_add_notice(
__(
'Payment cancelled. Please try again or choose another payment method.',
'wc-buckaroo-bpe-gateway'
),
'error'
);
wp_safe_redirect( $order->get_cancel_order_url() );
}
}
exit;
}
}