Tag: webhooks

如何通过Shopify API删除Shopify Webhooks?

我无法删除通过Shopify API创建的Webhooks。 为了创建webhook,我在RoR中使用了这段代码: webhook = ShopifyAPI::Webhook.create(format: “json”, topic: “orders/create”, address: “some address”) 我能够发送GET请求并检索所有创建的webhook。 但是当我发送带有相应ID的DELETE请求时,响应是“404 Not Found – errors:Not found”。 我正在使用Firefox的RESTClient发送DELETE请求,格式如下: DELETE https://api_key:shared-secret@hostname/admin/webhooks/1855159.json 也许它不起作用,因为webhooks是通过API创建的。 有没有其他方法可以删除webhooks? 提前致谢!

Webhook在Rails中返回401

我使用Fluidsurveys创建了一个webhook,它对应于这个控制器: class HooksController params[:_completed]) response.invite_email = params[:_invite_email] response.locale = params[:_locale] response.key = params[:_key] response.webhook = params[:webhook] response.survey_name = params[:survey_name] response.username = params[:_username] response.weighted_score = params[:_weighted_score] response.completion_time = params[:_completion_time] response.ip_address = params[:_ip_address] response.num_responses = params[:num_responses] response.survey_id = params[:survey_id] response.invite_name = params[:_invite_name] response.language = params[:_language] response.referrer = params[:_referrer] response.fs_created_at = params[:_created_at] response.fs_updated_at = params[:_updated_at] response.survey_url = params[:survey_url] […]

如何捕获Shopify Webhook发送的HTTP POST请求

我有点像菜鸟,并且不敢承认,我正在研究这个项目作为学习经验,以便通过php和服务器端脚本/处理来改善。 我正试图想出一种方法来使用Shopify,并在每次从我的Shopify购物车完成订单时同时更新关闭服务器数据库。 例如,有人从我的在线商店购买了一些东西,我希望它能够更新我的家庭数据库库存,以显示它现在只有一个项目。 我得出的结论是,最好的方法是设置一个webhook通知 ,将HTTP POST请求发送到我的服务器,然后我让我的服务器捕获POST并将其解析为XML。 然后,我将通过将更新我的数据库的php脚本读取XML。 我没有问题的PHP,但我似乎无法弄清楚是如何抓住我的服务器上的webhook。 Webhook要求我提供一个发送POST请求的URL,我的问题是你; 什么是url? 我做了一些研究,发现你可以通过html,php,Access-Control-Allow-Origin等多种方式捕获POST请求。但是,由于我还是新手,我不知道真的明白如何做到这些。 我尝试过使用HTML隐藏的动作表单,但似乎无法捕获XML。 我想做的就是让webhook发送它的POST请求,并将其作为.xml捕获。 这样我就可以在每天结束时读取xml,并相应地更新数据库。 如果您能想到更好或更简单的方法,请务必向我提出您的建议。 我希望这是安全的,所以像Access-Control-Allow-Origin这样的方法是不可能的。 tl;博士:我在服务器上需要做什么来捕获webhook通知? 我应该在服务器上使用什么脚本来提供给webhook? 如何编写回调脚本?

validationShopify webhook

我认为要让Shopify webhook与Rails应用程序集成,Rails应用程序需要禁用默认的verify_authenticity_token方法 ,并使用X_SHOPIFY_HMAC_SHA256标头实现自己的身份validation。 Shopify文档说只使用request.body.read 。 所以,我做到了: def create verify_webhook(request) # Send back a 200 OK response head :ok end def verify_webhook(request) header_hmac = request.headers[“HTTP_X_SHOPIFY_HMAC_SHA256”] digest = OpenSSL::Digest.new(“sha256”) request.body.rewind calculated_hmac = Base64.encode64(OpenSSL::HMAC.digest(digest, SHARED_SECRET, request.body.read)).strip puts “header hmac: #{header_hmac}” puts “calculated hmac: #{calculated_hmac}” puts “Verified:#{ActiveSupport::SecurityUtils.secure_compare(calculated_hmac, header_hmac)}” end Shopify webhook指向正确的URL,路由将其提供给上面显示的控制器方法。 但是当我发送测试通知时,输出不正确。 两个HMAC不相等,因此未经validation。 我很确定问题是Shopify使用整个请求作为身份validation哈希,而不仅仅是POST内容。 所以,我需要原始的,未触及的HTTP请求,除非我弄错了。 在至少一个小时的搜索之后, 这个问题似乎是互联网上唯一有希望的事情。 这正是我所要求的,它有30个upvotes接受的答案。 但他的回答……很荒谬。 […]