Braintree Webhooks 和 Wordpress

Braintree Webhooks and Wordpress

我对网络挂钩有点陌生​​,请放轻松:)

我正在为 WordPress 开发一个插件,Braintree 的支付处理器使用他们的 API。

我设置了用于提交交易的表单并且看起来运行良好。但是,我需要监控子商户帐户授权的状态。

Dev Docs 指定在 Braintree 的控制面板中使用域设置 webhook。com/hook。php 位置。

在 Wordpress 中,您无法通过 URL 直接访问插件文件位置。

如何将webhook指向具有获取子商户信息功能的正确文件?

我目前使用 ajax 和

处理付款

get_admin_url() . 'admin-ajax.php?action=icfloevents_do_payment';

获取管理员 url,并将其定向到函数。

你如何从外部做到这一点?

经过一些搜索和实验后发现了这一点。

显而易见的(事后)解决方案是使用 WordPress 重写 URL 函数将 URL 路径指向插件目录中的单个文件。

function rewrite_braintree_hook(){

    global $wp_rewrite;

    $plugin_url = plugins_url( 'brainhook.php', __FILE__ );
    $plugin_url = substr( $plugin_url, strlen( home_url() ) + 1 );

    add_rewrite_rule('brainhook', $plugin_url ,'top');


    $wp_rewrite->flush_rules(true);
}

这将允许 Url something.com/brainhook 指向 brainhook.php 从而允许我直接在我的插件中使用 API 回调。

确保通过进入设置->永久链接并单击保存而不更改任何内容来刷新重写 "cache"。

希望这对其他人有帮助。