web-dev-qa-db-fra.com

Emplacement sensible pour le script de rappel IPN

Je travaille sur un plugin qui impliquera d'accepter les notifications de paiement instantané Paypal. Les IPN sont un Web-hook qui est appelé quand un paiement est traité. Actuellement, j'ai un script pour gérer les IPN dans le plugin, par exemple.

http://mywordpressinstall.com/wp-content/plugins/paypalplugin/IPNHandler.php

Je colle ensuite cette URL dans la zone des paramètres de développement Paypal.

J'aimerais utiliser un emplacement plus personnalisable pour le gestionnaire IPN (avec une URL plus conviviale).

Je pensais que peut-être un shortcode pourrait être utilisé pour donner une fonctionnalité de "gestionnaire" à n'importe quelle page dans laquelle elle est insérée. Est-ce une idée judicieuse? Quelqu'un a-t-il une suggestion sur la manière de rendre l'URL du gestionnaire plus courte?

Merci!

2
LBNerdBard

Vous pouvez vous connecter à l'action init et ensuite vérifier la variable de requête, vous pouvez utiliser la variable de requête fournie par Paypal ou vous pouvez utiliser votre propre variable de requête personnalisée.

Je vais vous donner un exemple de votre propre requête personnalisée var i.e MYIPN_LISTENER

Le code:

function wpse58656_Paypal_ipn_listener() {
    // check for your custom query var
    // If you are paranoid you can also check the value of the var
    if ( ! isset( $_GET['MYIPN_LISTENER'] ) ) {
        // if query var is not present just return
        return;
    }

    // do the processsing here

    // don't forget to exit when you are done
    exit;
}
add_action( 'init', 'wpse58656_Paypal_ipn_listener' );

Vous pouvez maintenant utiliser n’importe quelle URL, mais MYIPN_LISTENER doit figurer comme requête var, par exemple: http://mywordpressinstall.com/?MYIPN_LISTENER=1

5
Hameedullah Khan