WC_Gateway_Paypal_IPN_Handler::validate_ipn() public WC 1.0
Check PayPal IPN validity.
{} Это метод класса: WC_Gateway_Paypal_IPN_Handler{}
Хуков нет.
Возвращает
Null. Ничего.
Использование
$WC_Gateway_Paypal_IPN_Handler = new WC_Gateway_Paypal_IPN_Handler(); $WC_Gateway_Paypal_IPN_Handler->validate_ipn();
Код WC_Gateway_Paypal_IPN_Handler::validate_ipn() WC Gateway Paypal IPN Handler::validate ipn WC 5.0.0
public function validate_ipn() {
WC_Gateway_Paypal::log( 'Checking IPN response is valid' );
// Get received values from post data.
$validate_ipn = wp_unslash( $_POST ); // WPCS: CSRF ok, input var ok.
$validate_ipn['cmd'] = '_notify-validate';
// Send back post vars to paypal.
$params = array(
'body' => $validate_ipn,
'timeout' => 60,
'httpversion' => '1.1',
'compress' => false,
'decompress' => false,
'user-agent' => 'WooCommerce/' . WC()->version,
);
// Post back to get a response.
$response = wp_safe_remote_post( $this->sandbox ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
WC_Gateway_Paypal::log( 'IPN Response: ' . wc_print_r( $response, true ) );
// Check to see if the request was valid.
if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
WC_Gateway_Paypal::log( 'Received valid response from PayPal IPN' );
return true;
}
WC_Gateway_Paypal::log( 'Received invalid response from PayPal IPN' );
if ( is_wp_error( $response ) ) {
WC_Gateway_Paypal::log( 'Error response: ' . $response->get_error_message() );
}
return false;
}