首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shopify Webhooks在测试中工作,但在实践中不起作用

问Shopify Webhooks在测试中工作,但在实践中不起作用
EN

Stack Overflow用户
提问于 2018-06-17 09:48:28
回答 1查看 625关注 0票数 0

我通过Shopify SDK (使用PHP包装器:https://github.com/phpclassic/php-shopify)安装到用户商店的Shopify 'orders/paid‘webhook遇到了一些问题。无论如何,我像这样创建webhook:

代码语言:javascript
复制
$shop = $this->request->getVar('shop');  // Get Shopify store URL

// Get access token for store
$config = array('ShopUrl' => $shop, 'ApiKey' => 'xxx', 'SharedSecret' => 'xxx');
\PHPShopify\ShopifySDK::config($config);
$accessToken = \PHPShopify\AuthHelper::getAccessToken();

// Keep track of access_token for SDK calls and authenticate to store for webhook creation
$addToken = $this->Stores->addAccessToken($shop, $accessToken);
$config = array('AccessToken' => $accessToken, 'ShopUrl' => $shop);
$shopify = new \PHPShopify\ShopifySDK($config);

// Create orders/paid webhook
$orderPaidHook = array('topic' => 'orders/paid', 'address' => 'https://api.autoloapp.com/webhook/create', 'format' => 'json');

try {
    $webhooks = $shopify->Webhook->post($orderPaidHook);
 }

据我所知,这段代码使用print_r($webhooks)给了我一个有效的Webhook,它(理论上)已经安装到了商店上。但是,当订单在商店上实际支付时,我没有收到消息。

使用“购物管理”中“通知”下的"Test Webhook“设置,我的webhook可以很好地工作。使用PostMan模拟webhook调用效果很好。

处理webhook的代码如下所示:

代码语言:javascript
复制
$headers = getallheaders();
$topic = $headers['X-Shopify-Topic'];
$storeName = $headers['X-Shopify-Shop-Domain'];

if ($topic == 'orders/paid') {
     // Do some stuff, insert row into database
}

同样,当我使用PostMan或Shopify的内置"Test Webhook“设置时,我的数据库中的行会被创建得很好。当我使用真正的webhook时,什么都不会发生。我不确定为什么会发生这种情况,据我所知,所有的头都应该是相同的。我需要以某种方式验证webhook吗?

作为参考,我使用了CodeIgniter 4.0、PHP7.0和最新版本的Shopify SDK。

我在Shopify的文档中发现了这样的注释:“请注意,如果您使用的是基于Rack的框架,如Ruby on Rails或Sinatra,那么您要查找的头文件是HTTP_X_SHOPIFY_HMAC_SHA256”。在我目前的设置下,我应该仍然使用X-Shopify-Shop-Domain而不是HTTP_X_Shopify_Shop_Domain,对吗?非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-06-17 16:19:51

因此,我最终发现,由于某些原因,“订单/付费”的webhook在“生产环境”中不适用于我,尽管它在我的测试环境中运行良好。只需将主题更改为“orders/create”就解决了我的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50893057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档