PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.8
GiveWP – Donation Plugin and Fundraising Platform v2.19.8
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / PaymentGateways / Gateways / PayPalStandard / Actions / ProcessIpnDonationRefund.php
give / src / PaymentGateways / Gateways / PayPalStandard / Actions Last commit date
CreatePayPalStandardPaymentURL.php 4 years ago GenerateDonationFailedPageUrl.php 4 years ago GenerateDonationReceiptPageUrl.php 4 years ago ProcessIpnDonationRefund.php 4 years ago
ProcessIpnDonationRefund.php
74 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\PayPalStandard\Actions;
4
5 use Give\ValueObjects\Money;
6 use Give_Payment;
7 use stdClass;
8
9 /**
10 * @since 2.19.0
11 */
12 class ProcessIpnDonationRefund
13 {
14 /**
15 * @since 2.19.0
16 *
17 * @param stdClass $ipnEventData
18 * @param int $donationId
19 *
20 * @return void
21 */
22 public function __invoke(stdClass $ipnEventData, $donationId)
23 {
24 $donation = new Give_Payment($donationId);
25 if ($this->isPartialRefund($ipnEventData->mc_gross, $donation->currency, $donation->total)) {
26 $donation->add_note(
27 sprintf( /* translators: %s: Paypal parent transaction ID */
28 __('Partial PayPal refund processed: %s', 'give'),
29 $ipnEventData->parent_txn_id
30 )
31 );
32 } else {
33 $donation->add_note(
34 sprintf( /* translators: 1: Paypal parent transaction ID 2. Paypal reason code */
35 __('PayPal Payment #%1$s Refunded for reason: %2$s', 'give'),
36 $ipnEventData->parent_txn_id,
37 $ipnEventData->reason_code
38 )
39 );
40
41 $donation->add_note(
42 sprintf( /* translators: %s: Paypal transaction ID */
43 __('PayPal Refund Transaction ID: %s', 'give'),
44 $ipnEventData->txn_id
45 )
46 );
47
48 $donation->update_status('refunded');
49 }
50 }
51
52 /**
53 * @since 2.19.0
54 *
55 * @param string $refundedAmount
56 * @param $currency
57 * @param $donationAmount
58 *
59 * @return bool
60 */
61 protected function isPartialRefund($refundedAmount, $currency, $donationAmount)
62 {
63 $donationAmount = Money::of($donationAmount, $currency);
64 $refundedAmountOnPayPal = Money::of(
65 // PayPal Standard sends negative amount when refund payment.
66 // Check details https://developer.paypal.com/api/nvp-soap/ipn/IPNandPDTVariables/
67 $refundedAmount * -1,
68 $currency
69 );
70
71 return $refundedAmountOnPayPal->getMinorAmount() < $donationAmount->getMinorAmount();
72 }
73 }
74