php 如何使用content-type从webhook获取数据:application/x-www-form-urlencoded;charset=UTF-8?

vuktfyat  于 2023-04-28  发布在  PHP
关注(0)|答案(1)|浏览(126)

我在zoho crm中设置了一个webhook,但当我尝试使用json_decode(file_get_contents("php://input"), true)获取数据时,它总是空白的。从内容类型看,数据不是json,我已经尝试了一切,我仍然无法从webhook获得数据。
任何帮助都非常感谢。
捕获HTTP POST请求:

add_action( 'rest_api_init', 'register_api_hooks' );

function register_api_hooks() {
    register_rest_route( 'ep-to-zoho-crm/v1', '/updatecompany', array(
        'methods'  => 'POST',
        'callback' => 'webhook_listener',
    ));
};

function webhook_listener($request){
    // We don't want to process if it did not come from webhook
    //if( !isset( $_GET['companyid'] ) ) { return; }

    //$data = $request->get_param( 'companyid' );

    if ( isset( $_REQUEST['companyid'] ) ) {
        file_put_contents(plugin_dir_path( __FILE__ ).'crm.txt', 'works');
    }else{
        file_put_contents(plugin_dir_path( __FILE__ ).'invalid.txt', 'invalid');
    } 

    /*$data = $_POST['companyid'];

    file_put_contents(plugin_dir_path( __FILE__ ).'crm.txt', $data);

    $json_string = json_encode($_POST);

    $save = file_put_contents(plugin_dir_path( __FILE__ ).'crm.json', $json_string);*/
}
add_action( 'init', 'webhook_listener' );

然后我的webhook url看起来像这样https://example.com/wp-json/ep-to-zoho-crm/v1/updatecompany

hof1towb

hof1towb1#

这个问题是我的服务器配置不正确,所以数据被阻止时,发送到我的webhook网址。

相关问题