Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php BraintreeWebhooks和Wordpress_Php_Wordpress_Braintree - Fatal编程技术网

Php BraintreeWebhooks和Wordpress

Php BraintreeWebhooks和Wordpress,php,wordpress,braintree,Php,Wordpress,Braintree,我对网络挂钩有点陌生,请放松:) 我正在为WordPress开发一个插件,使用Braintree的支付处理器的API 我有提交交易的表单设置,看起来效果不错。但是,我需要监视子商户帐户授权的状态 Dev文档指定在Braintree的控制面板中使用domain.com/hook.php位置设置webhook 在Wordpress中,您不能通过URL直接访问插件文件位置 如何使用函数将webhook指向正确的文件以获取子商户信息 我目前使用ajax和 get_admin_url()。'admin a

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

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

我有提交交易的表单设置,看起来效果不错。但是,我需要监视子商户帐户授权的状态

Dev文档指定在Braintree的控制面板中使用domain.com/hook.php位置设置webhook

在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回调

进入设置->永久链接并单击保存,确保刷新重写“缓存”,而不做任何更改

希望这对其他人有帮助