Changeset 3045385
- Timestamp:
- 03/05/2024 05:46:59 AM (2 years ago)
- Location:
- omise
- Files:
-
- 14 added
- 24 edited
- 1 copied
-
tags/5.8.0 (copied) (copied from omise/trunk)
-
tags/5.8.0/CHANGELOG.md (modified) (1 diff)
-
tags/5.8.0/assets/images/wechat_pay.svg (added)
-
tags/5.8.0/includes/class-omise-callback.php (modified) (2 diffs)
-
tags/5.8.0/includes/class-omise-payment-factory.php (modified) (1 diff)
-
tags/5.8.0/includes/gateway/abstract-omise-payment-base-card.php (modified) (1 diff)
-
tags/5.8.0/includes/gateway/class-omise-payment-wechat-pay.php (added)
-
tags/5.8.0/includes/gateway/traits/charge-request-builder-trait.php (modified) (3 diffs)
-
tags/5.8.0/includes/libraries/omise-plugin/helpers/request.php (modified) (4 diffs)
-
tags/5.8.0/omise-woocommerce.php (modified) (3 diffs)
-
tags/5.8.0/phpunit.xml (modified) (1 diff)
-
tags/5.8.0/readme.txt (modified) (2 diffs)
-
tags/5.8.0/tests/unit/includes/gateway/abstract-omise-payment-base-card-test.php (modified) (1 diff)
-
tags/5.8.0/tests/unit/includes/gateway/bootstrap-test-setup.php (modified) (1 diff)
-
tags/5.8.0/tests/unit/includes/gateway/class-omise-payment-wechat-pay-test.php (added)
-
tags/5.8.0/tests/unit/includes/gateway/traits/charge-request-builder-test.php (modified) (1 diff)
-
tags/5.8.0/tests/unit/includes/libraries (added)
-
tags/5.8.0/tests/unit/includes/libraries/omise-plugin (added)
-
tags/5.8.0/tests/unit/includes/libraries/omise-plugin/helpers (added)
-
tags/5.8.0/tests/unit/includes/libraries/omise-plugin/helpers/request-test.php (added)
-
trunk/CHANGELOG.md (modified) (1 diff)
-
trunk/assets/images/wechat_pay.svg (added)
-
trunk/includes/class-omise-callback.php (modified) (2 diffs)
-
trunk/includes/class-omise-payment-factory.php (modified) (1 diff)
-
trunk/includes/gateway/abstract-omise-payment-base-card.php (modified) (1 diff)
-
trunk/includes/gateway/class-omise-payment-wechat-pay.php (added)
-
trunk/includes/gateway/traits/charge-request-builder-trait.php (modified) (3 diffs)
-
trunk/includes/libraries/omise-plugin/helpers/request.php (modified) (4 diffs)
-
trunk/omise-woocommerce.php (modified) (3 diffs)
-
trunk/phpunit.xml (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/tests/unit/includes/gateway/abstract-omise-payment-base-card-test.php (modified) (1 diff)
-
trunk/tests/unit/includes/gateway/bootstrap-test-setup.php (modified) (1 diff)
-
trunk/tests/unit/includes/gateway/class-omise-payment-wechat-pay-test.php (added)
-
trunk/tests/unit/includes/gateway/traits/charge-request-builder-test.php (modified) (1 diff)
-
trunk/tests/unit/includes/libraries (added)
-
trunk/tests/unit/includes/libraries/omise-plugin (added)
-
trunk/tests/unit/includes/libraries/omise-plugin/helpers (added)
-
trunk/tests/unit/includes/libraries/omise-plugin/helpers/request-test.php (added)
Legend:
- Unmodified
- Added
- Removed
-
omise/tags/5.8.0/CHANGELOG.md
r3021743 r3045385 1 1 # CHANGELOG 2 3 ## [v5.8.0 _(Mar 5, 2024)_](https://github.com/omise/omise-woocommerce/releases/tag/v5.8.0) 4 - Add WeChat Pay. (PR [#434](https://github.com/omise/omise-woocommerce/pull/434)) 5 - Use WC order number metadata. (PR [#435](https://github.com/omise/omise-woocommerce/pull/435)) 2 6 3 7 ## [v5.7.0 _(Jan 11, 2024)_](https://github.com/omise/omise-woocommerce/releases/tag/v5.7.0) -
omise/tags/5.8.0/includes/class-omise-callback.php
r2892466 r3045385 32 32 $order = wc_get_order( $order_id ); 33 33 34 if(!RequestHelper::validate Request($order->get_meta('token'))) {34 if(!RequestHelper::validate_request($order->get_meta('token'))) { 35 35 return wp_redirect( wc_get_checkout_url() ); 36 36 } … … 39 39 $callback->validate(); 40 40 } 41 42 41 43 42 /** -
omise/tags/5.8.0/includes/class-omise-payment-factory.php
r2969504 r3045385 42 42 'Omise_Payment_DuitNow_OBW', 43 43 'Omise_Payment_Atome', 44 'Omise_Payment_PayPay' 44 'Omise_Payment_PayPay', 45 'Omise_Payment_Wechat_Pay', 45 46 ); 46 47 -
omise/tags/5.8.0/includes/gateway/abstract-omise-payment-base-card.php
r2979883 r3045385 63 63 { 64 64 $currency = $order->get_currency(); 65 $order_number = $order->get_order_number(); 65 66 $data = [ 66 67 'amount' => Omise_Money::to_subunit($order->get_total(), $currency), 67 68 'currency' => $currency, 68 'description' => 'WooCommerce Order id ' . $order_ id,69 'description' => 'WooCommerce Order id ' . $order_number, 69 70 'return_uri' => $this->get_redirect_url('omise_callback', $order_id, $order), 70 71 'metadata' => $this->get_metadata( 71 $order_ id,72 $order_number, 72 73 [ 'secure_form_enabled' => $this->getSecureFormState()] 73 74 ), -
omise/tags/5.8.0/includes/gateway/traits/charge-request-builder-trait.php
r2979883 r3045385 11 11 { 12 12 $currency = $order->get_currency(); 13 $description = 'WooCommerce Order id ' . $order_id; 13 $order_number = $order->get_order_number(); 14 $description = 'WooCommerce Order id ' . $order_number; 14 15 15 16 $request = [ … … 17 18 'currency' => $currency, 18 19 'description' => $description, 19 'metadata' => $this->get_metadata($order_ id),20 'metadata' => $this->get_metadata($order_number), 20 21 'source' => [ 'type' => $source_type ] 21 22 ]; … … 41 42 42 43 /** 43 * @param string $order_ id44 * @param string $order_number 44 45 * @param array $additionalData 45 46 */ 46 public function get_metadata($order_ id, $additionalData = [])47 public function get_metadata($order_number, $additionalData = []) 47 48 { 48 49 // override order_id as a reference for webhook handlers. 49 $orderId = [ 'order_id' => $order_ id];50 $orderId = [ 'order_id' => $order_number ]; 50 51 return array_merge($orderId, $additionalData); 51 52 } -
omise/tags/5.8.0/includes/libraries/omise-plugin/helpers/request.php
r2809311 r3045385 1 1 <?php 2 if (! class_exists('RequestHelper')) {2 if (!class_exists('RequestHelper')) { 3 3 class RequestHelper 4 4 { … … 10 10 * Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Site 11 11 */ 12 public static function is UserOriginated()12 public static function is_user_originated() 13 13 { 14 14 $fetch_site = sanitize_text_field($_SERVER['HTTP_SEC_FETCH_SITE']); … … 21 21 * @param string|null $order_token 22 22 */ 23 public static function validate Request($order_token = null)23 public static function validate_request($order_token = null) 24 24 { 25 $token = isset( $_GET['token'] ) ? sanitize_text_field( $_GET['token']) : null;25 $token = isset($_GET['token']) ? sanitize_text_field($_GET['token']) : null; 26 26 27 27 // For all payment except offline and OCBC PAO. … … 31 31 32 32 // For offline payment methods does not include token in the return URI. 33 return !self::isUserOriginated(); 33 return !self::is_user_originated(); 34 } 35 36 public static function get_client_ip() 37 { 38 $headersToCheck = [ 39 // Check for a client using a shared internet connection 40 'HTTP_CLIENT_IP', 41 42 // Check if the proxy is used for IP/IPs 43 'HTTP_X_FORWARDED_FOR', 44 45 // check for other possible forwarded IP headers 46 'HTTP_X_FORWARDED', 47 'HTTP_FORWARDED_FOR', 48 'HTTP_FORWARDED', 49 ]; 50 51 foreach($headersToCheck as $header) { 52 if (empty($_SERVER[$header])) { 53 continue; 54 } 55 56 if ($header === 'HTTP_X_FORWARDED_FOR') { 57 return self::process_forwarded_for_header($_SERVER[$header]); 58 } 59 60 return $_SERVER[$header]; 61 } 62 63 // return default remote IP address 64 return $_SERVER['REMOTE_ADDR']; 65 } 66 67 private static function process_forwarded_for_header($forwardedForHeader) 68 { 69 // Split if multiple IP addresses exist and get the last IP address 70 if (strpos($forwardedForHeader, ',') !== false) { 71 $multiple_ips = explode(",", $forwardedForHeader); 72 return trim(current($multiple_ips)); 73 } 74 return $forwardedForHeader; 34 75 } 35 76 } -
omise/tags/5.8.0/omise-woocommerce.php
r3021743 r3045385 5 5 * Plugin URI: https://www.omise.co/woocommerce 6 6 * Description: Opn Payments is a WordPress plugin designed specifically for WooCommerce. The plugin adds support for Opn Payments Payment Gateway's payment methods to WooCommerce. 7 * Version: 5. 7.07 * Version: 5.8.0 8 8 * Author: Opn Payments and contributors 9 9 * Author URI: https://github.com/omise/omise-woocommerce/graphs/contributors … … 23 23 * @var string 24 24 */ 25 public $version = '5. 7.0';25 public $version = '5.8.0'; 26 26 27 27 /** … … 225 225 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/gateway/class-omise-payment-atome.php'; 226 226 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/gateway/class-omise-payment-paypay.php'; 227 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/gateway/class-omise-payment-wechat-pay.php'; 227 228 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/libraries/omise-php/lib/Omise.php'; 228 229 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/libraries/omise-plugin/Omise.php'; -
omise/tags/5.8.0/phpunit.xml
r2852769 r3045385 25 25 </exclude> 26 26 </coverage> 27 <php> 28 <server name="HTTP_CLIENT_IP" value="192.168.1.1"/> 29 <server name="HTTP_X_FORWARDED_FOR" value="192.168.1.2"/> 30 <server name="HTTP_X_FORWARDED" value="192.168.1.3"/> 31 <server name="HTTP_FORWARDED_FOR" value="192.168.1.4"/> 32 <server name="HTTP_FORWARDED" value="192.168.1.5"/> 33 <server name="REMOTE_ADDR" value="192.168.1.6"/> 34 </php> 27 35 </phpunit> -
omise/tags/5.8.0/readme.txt
r3021743 r3045385 4 4 Requires at least: 4.3.1 5 5 Tested up to: 6.4.2 6 Stable tag: 5. 7.06 Stable tag: 5.8.0 7 7 License: MIT 8 8 License URI: https://opensource.org/licenses/MIT … … 34 34 35 35 == Changelog == 36 37 = 5.8.0 = 38 39 - Add WeChat Pay. (PR [#434](https://github.com/omise/omise-woocommerce/pull/434)) 40 - Use WC order number metadata. (PR [#435](https://github.com/omise/omise-woocommerce/pull/435)) 36 41 37 42 = 5.7.0 = -
omise/tags/5.8.0/tests/unit/includes/gateway/abstract-omise-payment-base-card-test.php
r2996251 r3045385 63 63 $orderMock->shouldReceive('add_meta_data') 64 64 ->andReturn(['order_id' => 'order_123']); 65 $orderMock->shouldReceive('get_order_number') 66 ->andReturn(1234); 65 67 $orderMock->shouldReceive('get_user') 66 68 ->andReturn((object)[ -
omise/tags/5.8.0/tests/unit/includes/gateway/bootstrap-test-setup.php
r3021743 r3045385 2 2 3 3 use PHPUnit\Framework\TestCase; 4 5 4 6 5 abstract class Bootstrap_Test_Setup extends TestCase -
omise/tags/5.8.0/tests/unit/includes/gateway/traits/charge-request-builder-test.php
r2979883 r3045385 35 35 ->andReturn($expectedAmount); // in units 36 36 $orderMock->shouldReceive('add_meta_data'); 37 $orderMock->shouldReceive('get_order_number') 38 ->andReturn(1234); 37 39 return $orderMock; 38 40 } -
omise/trunk/CHANGELOG.md
r3021743 r3045385 1 1 # CHANGELOG 2 3 ## [v5.8.0 _(Mar 5, 2024)_](https://github.com/omise/omise-woocommerce/releases/tag/v5.8.0) 4 - Add WeChat Pay. (PR [#434](https://github.com/omise/omise-woocommerce/pull/434)) 5 - Use WC order number metadata. (PR [#435](https://github.com/omise/omise-woocommerce/pull/435)) 2 6 3 7 ## [v5.7.0 _(Jan 11, 2024)_](https://github.com/omise/omise-woocommerce/releases/tag/v5.7.0) -
omise/trunk/includes/class-omise-callback.php
r2892466 r3045385 32 32 $order = wc_get_order( $order_id ); 33 33 34 if(!RequestHelper::validate Request($order->get_meta('token'))) {34 if(!RequestHelper::validate_request($order->get_meta('token'))) { 35 35 return wp_redirect( wc_get_checkout_url() ); 36 36 } … … 39 39 $callback->validate(); 40 40 } 41 42 41 43 42 /** -
omise/trunk/includes/class-omise-payment-factory.php
r2969504 r3045385 42 42 'Omise_Payment_DuitNow_OBW', 43 43 'Omise_Payment_Atome', 44 'Omise_Payment_PayPay' 44 'Omise_Payment_PayPay', 45 'Omise_Payment_Wechat_Pay', 45 46 ); 46 47 -
omise/trunk/includes/gateway/abstract-omise-payment-base-card.php
r2979883 r3045385 63 63 { 64 64 $currency = $order->get_currency(); 65 $order_number = $order->get_order_number(); 65 66 $data = [ 66 67 'amount' => Omise_Money::to_subunit($order->get_total(), $currency), 67 68 'currency' => $currency, 68 'description' => 'WooCommerce Order id ' . $order_ id,69 'description' => 'WooCommerce Order id ' . $order_number, 69 70 'return_uri' => $this->get_redirect_url('omise_callback', $order_id, $order), 70 71 'metadata' => $this->get_metadata( 71 $order_ id,72 $order_number, 72 73 [ 'secure_form_enabled' => $this->getSecureFormState()] 73 74 ), -
omise/trunk/includes/gateway/traits/charge-request-builder-trait.php
r2979883 r3045385 11 11 { 12 12 $currency = $order->get_currency(); 13 $description = 'WooCommerce Order id ' . $order_id; 13 $order_number = $order->get_order_number(); 14 $description = 'WooCommerce Order id ' . $order_number; 14 15 15 16 $request = [ … … 17 18 'currency' => $currency, 18 19 'description' => $description, 19 'metadata' => $this->get_metadata($order_ id),20 'metadata' => $this->get_metadata($order_number), 20 21 'source' => [ 'type' => $source_type ] 21 22 ]; … … 41 42 42 43 /** 43 * @param string $order_ id44 * @param string $order_number 44 45 * @param array $additionalData 45 46 */ 46 public function get_metadata($order_ id, $additionalData = [])47 public function get_metadata($order_number, $additionalData = []) 47 48 { 48 49 // override order_id as a reference for webhook handlers. 49 $orderId = [ 'order_id' => $order_ id];50 $orderId = [ 'order_id' => $order_number ]; 50 51 return array_merge($orderId, $additionalData); 51 52 } -
omise/trunk/includes/libraries/omise-plugin/helpers/request.php
r2809311 r3045385 1 1 <?php 2 if (! class_exists('RequestHelper')) {2 if (!class_exists('RequestHelper')) { 3 3 class RequestHelper 4 4 { … … 10 10 * Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Site 11 11 */ 12 public static function is UserOriginated()12 public static function is_user_originated() 13 13 { 14 14 $fetch_site = sanitize_text_field($_SERVER['HTTP_SEC_FETCH_SITE']); … … 21 21 * @param string|null $order_token 22 22 */ 23 public static function validate Request($order_token = null)23 public static function validate_request($order_token = null) 24 24 { 25 $token = isset( $_GET['token'] ) ? sanitize_text_field( $_GET['token']) : null;25 $token = isset($_GET['token']) ? sanitize_text_field($_GET['token']) : null; 26 26 27 27 // For all payment except offline and OCBC PAO. … … 31 31 32 32 // For offline payment methods does not include token in the return URI. 33 return !self::isUserOriginated(); 33 return !self::is_user_originated(); 34 } 35 36 public static function get_client_ip() 37 { 38 $headersToCheck = [ 39 // Check for a client using a shared internet connection 40 'HTTP_CLIENT_IP', 41 42 // Check if the proxy is used for IP/IPs 43 'HTTP_X_FORWARDED_FOR', 44 45 // check for other possible forwarded IP headers 46 'HTTP_X_FORWARDED', 47 'HTTP_FORWARDED_FOR', 48 'HTTP_FORWARDED', 49 ]; 50 51 foreach($headersToCheck as $header) { 52 if (empty($_SERVER[$header])) { 53 continue; 54 } 55 56 if ($header === 'HTTP_X_FORWARDED_FOR') { 57 return self::process_forwarded_for_header($_SERVER[$header]); 58 } 59 60 return $_SERVER[$header]; 61 } 62 63 // return default remote IP address 64 return $_SERVER['REMOTE_ADDR']; 65 } 66 67 private static function process_forwarded_for_header($forwardedForHeader) 68 { 69 // Split if multiple IP addresses exist and get the last IP address 70 if (strpos($forwardedForHeader, ',') !== false) { 71 $multiple_ips = explode(",", $forwardedForHeader); 72 return trim(current($multiple_ips)); 73 } 74 return $forwardedForHeader; 34 75 } 35 76 } -
omise/trunk/omise-woocommerce.php
r3021743 r3045385 5 5 * Plugin URI: https://www.omise.co/woocommerce 6 6 * Description: Opn Payments is a WordPress plugin designed specifically for WooCommerce. The plugin adds support for Opn Payments Payment Gateway's payment methods to WooCommerce. 7 * Version: 5. 7.07 * Version: 5.8.0 8 8 * Author: Opn Payments and contributors 9 9 * Author URI: https://github.com/omise/omise-woocommerce/graphs/contributors … … 23 23 * @var string 24 24 */ 25 public $version = '5. 7.0';25 public $version = '5.8.0'; 26 26 27 27 /** … … 225 225 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/gateway/class-omise-payment-atome.php'; 226 226 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/gateway/class-omise-payment-paypay.php'; 227 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/gateway/class-omise-payment-wechat-pay.php'; 227 228 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/libraries/omise-php/lib/Omise.php'; 228 229 require_once OMISE_WOOCOMMERCE_PLUGIN_PATH . '/includes/libraries/omise-plugin/Omise.php'; -
omise/trunk/phpunit.xml
r2852769 r3045385 25 25 </exclude> 26 26 </coverage> 27 <php> 28 <server name="HTTP_CLIENT_IP" value="192.168.1.1"/> 29 <server name="HTTP_X_FORWARDED_FOR" value="192.168.1.2"/> 30 <server name="HTTP_X_FORWARDED" value="192.168.1.3"/> 31 <server name="HTTP_FORWARDED_FOR" value="192.168.1.4"/> 32 <server name="HTTP_FORWARDED" value="192.168.1.5"/> 33 <server name="REMOTE_ADDR" value="192.168.1.6"/> 34 </php> 27 35 </phpunit> -
omise/trunk/readme.txt
r3021743 r3045385 4 4 Requires at least: 4.3.1 5 5 Tested up to: 6.4.2 6 Stable tag: 5. 7.06 Stable tag: 5.8.0 7 7 License: MIT 8 8 License URI: https://opensource.org/licenses/MIT … … 34 34 35 35 == Changelog == 36 37 = 5.8.0 = 38 39 - Add WeChat Pay. (PR [#434](https://github.com/omise/omise-woocommerce/pull/434)) 40 - Use WC order number metadata. (PR [#435](https://github.com/omise/omise-woocommerce/pull/435)) 36 41 37 42 = 5.7.0 = -
omise/trunk/tests/unit/includes/gateway/abstract-omise-payment-base-card-test.php
r2996251 r3045385 63 63 $orderMock->shouldReceive('add_meta_data') 64 64 ->andReturn(['order_id' => 'order_123']); 65 $orderMock->shouldReceive('get_order_number') 66 ->andReturn(1234); 65 67 $orderMock->shouldReceive('get_user') 66 68 ->andReturn((object)[ -
omise/trunk/tests/unit/includes/gateway/bootstrap-test-setup.php
r3021743 r3045385 2 2 3 3 use PHPUnit\Framework\TestCase; 4 5 4 6 5 abstract class Bootstrap_Test_Setup extends TestCase -
omise/trunk/tests/unit/includes/gateway/traits/charge-request-builder-test.php
r2979883 r3045385 35 35 ->andReturn($expectedAmount); // in units 36 36 $orderMock->shouldReceive('add_meta_data'); 37 $orderMock->shouldReceive('get_order_number') 38 ->andReturn(1234); 37 39 return $orderMock; 38 40 }
Note: See TracChangeset
for help on using the changeset viewer.