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 / CreatePayPalStandardPaymentURL.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
CreatePayPalStandardPaymentURL.php
114 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\PayPalStandard\Actions;
4
5 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
6
7 /**
8 * This class create PayPal Standard payment gateway one time payment url on basis of donor donation query.
9 *
10 * @unlreased
11 */
12 class CreatePayPalStandardPaymentURL
13 {
14 public function __invoke(
15 GatewayPaymentData $paymentData,
16 $successRedirectUrl, // PayPal Standard will redirect donor to this url after successful payment.
17 $failedRedirectUrl, // PayPal Standard will redirect donor to this url after failed payment.
18 $payPalIpnListenerUrl // PayPal Standard will send ipn notification to this url on payment update.
19 )
20 {
21 $paypalPaymentRedirectUrl = trailingslashit(give_get_paypal_redirect()) . '?';
22 $itemName = give_payment_gateway_item_title($paymentData->legacyPaymentData);
23 $payPalPartnerCode = 'givewp_SP';
24
25 // Setup PayPal API params.
26 $paypalPaymentArguments = [
27 // PayPal account information
28 'business' => give_get_option('paypal_email', false),
29
30 // Donor info
31 'first_name' => $paymentData->donorInfo->firstName,
32 'last_name' => $paymentData->donorInfo->lastName,
33 'email' => $paymentData->donorInfo->email,
34 'address1' => $paymentData->billingAddress->line1,
35 'address2' => $paymentData->billingAddress->line2,
36 'city' => $paymentData->billingAddress->city,
37 'state' => $paymentData->billingAddress->state,
38 'zip' => $paymentData->billingAddress->postalCode,
39 'country' => $paymentData->billingAddress->country,
40
41 // Donation information.
42 'invoice' => $paymentData->purchaseKey,
43 'amount' => $paymentData->price,
44 'item_name' => stripslashes($itemName),
45 'currency_code' => give_get_currency($paymentData->donationId),
46
47 // Urls
48 'return' => $successRedirectUrl,
49 'cancel_return' => $failedRedirectUrl,
50 'notify_url' => $payPalIpnListenerUrl,
51
52 'no_shipping' => '1',
53 'shipping' => '0',
54 'no_note' => '1',
55 'charset' => get_bloginfo('charset'),
56 'custom' => $paymentData->donationId,
57 'rm' => '2',
58 'page_style' => give_get_paypal_page_style(),
59 'cbt' => get_bloginfo('name'),
60 'bn' => $payPalPartnerCode,
61 ];
62
63 // Donations or regular transactions?
64 $paypalPaymentArguments['cmd'] = give_get_paypal_button_type();
65
66 $paypalPaymentArguments = $this->supportLegacyFilter($paypalPaymentArguments, $paymentData);
67
68 /**
69 * Filter the PayPal Standard redirect args.
70 *
71 * @since 2.19.0
72 *
73 * @param array $paypalPaymentArguments PayPal Standard payment Data.
74 * @param GatewayPaymentData $paymentData Gateway payment data.
75 */
76 $paypalPaymentArguments = apply_filters(
77 'give_gateway_paypal_redirect_args',
78 $paypalPaymentArguments,
79 $paymentData
80 );
81
82 $paypalPaymentRedirectUrl .= http_build_query($paypalPaymentArguments);
83
84 // Fix for some sites that encode the entities.
85 return str_replace('&amp;', '&', $paypalPaymentRedirectUrl);
86 }
87
88 /**
89 * @since 2.19.0
90 *
91 * @param array $paypalPaymentArguments
92 * @param GatewayPaymentData $paymentData
93 *
94 * @return array
95 */
96 private function supportLegacyFilter($paypalPaymentArguments, GatewayPaymentData $paymentData)
97 {
98 /**
99 * Filter the PayPal Standard redirect args.
100 *
101 * @since 1.8
102 */
103 return apply_filters_deprecated(
104 'give_paypal_redirect_args',
105 [
106 $paypalPaymentArguments,
107 $paymentData->donationId,
108 $paymentData->legacyPaymentData
109 ],
110 '2.19.0'
111 );
112 }
113 }
114