【问题标题】:Create a webhook using API in shopify在 shopify 中使用 API 创建 webhook
【发布时间】:2017-11-13 16:54:04
【问题描述】:

这里我卡在 shopify 通过 API 创建 webhook

我正在使用 cake php 创建公共 shopify 应用程序

现在我想使用 API 为我的应用创建购物车/更新挂钩,这是我的代码 Cake php 库:https://github.com/cmcdonaldca/CakePHP-Shopify-Plugin

文件: ShopifyApiComponent.php

代码:

public function createwebhook($shop_domain, $access_token){

    $method = "POST";
    $path = "/admin/webhooks.json";

    $params = array("webhook" => array( "topic"=>"carts/create",
                    "address"=>  $this->site_url."users/upUpdateCart",
                    "format"=> "json"));


    $password = md5($this->secret.$access_token);//If your shopify app is public
    $baseurl = "https://".$this->api_key.":".$password."@".$shop_domain."/";

    $url = $baseurl.ltrim($path, '/');
    $query = in_array($method, array('GET','DELETE')) ? $params : array();
    $payload = in_array($method, array('POST','PUT')) ? stripslashes(json_encode($params)) : array();
    $request_headers = in_array($method, array('POST','PUT')) ? array("Content-Type: application/json; charset=utf-8", 'Expect:') : array();
    $request_headers[] = 'X-Shopify-Access-Token: ' . $access_token;
                list($response_body, $response_headers) = $this->Curl->HttpRequest($method, $url, $query, $payload, $request_headers);


    $this->last_response_headers = $response_headers;
    $response = json_decode($response_body, true);

    if (isset($response['errors']) or ($this->last_response_headers['http_status_code'] >= 400))
        $body = $response['errors'];
    else
        $body = $response_body;
    /*Debug the output in a text_file*/
    $destination = realpath('../../app/webroot/execution_log') . '/';
    $fh = fopen($destination."shopify_app.txt",'a') or die("can't open file");
    date_default_timezone_set('GMT');

    fwrite($fh, "\n\nDATE: ".date("Y-m-d H:i:s")."\n".$body);
    fclose($fh);
    /*Debug Code Ends*/
    return (is_array($response) and (count($response) > 0)) ? array_shift($response) : $response;
}

当我访问我的应用仪表板时,我调用了这个函数意味着 控制器:提供 功能:仪表板

但它似乎不起作用,因为当我访问时 https://test.myshopify.com/admin/webhooks.json 它只显示 如果我通过 Admin->Setting->Notification 创建 webhook,那么它会在此处显示列表 https://test.myshopify.com/admin/webhooks.json

请告诉我如何使用 API (cake php) 创建 webhook

【问题讨论】:

    标签: shopify webhooks


    【解决方案1】:

    Shopify 通过 webhooks.json 显示 webhook 列表,这些是从 shopify 管理员手动创建的。如果要获取通过 api 创建的 webhook 列表,则需要从另一个浏览器或私有浏览器(其中 shopify 管理员未登录)运行它

    您的链接将是这样的 - https://api-key:api-password@shop-name.myshopify.com/admin/webhooks.json

    注意:替换您的应用的api密钥和密码并替换链接中的商店名称,然后在新的/私人浏览器窗口中尝试。

    【讨论】:

    • 下单后有没有办法可以在thanku页面上添加sone脚本
    • 我认为您无法在 think 页面中自定义任何内容。(通过编码)因为感谢页面属于 checkout.shopify.com 域,而 shopify 不允许在此处修改任何内容.但这是我的想法..可能有办法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2019-05-04
    • 2013-04-30
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多