没有收到来自 webhook 的通知 - laravel & shopify



我正在为商家创建一个应用程序,并使用laravel为Shopify创建一个应用程序。我已经配置并安装了 Webhook,以便在我的应用程序中以config/shopify.php创建新客户时向管理员发送通知。

购物.php

use OseintowShopifyFacadesShopify;
use LaravelSocialiteFacadesSocialite;
use AppUser;
use AppStore;
use AppUserProvider;
use Auth;
$shopifyUser = Socialite::driver('shopify')->stateless()->user();
$shopUrl = $shopifyUser->nickname;
$accessToken = $shopifyUser->token;
Shopify::setShopUrl($shopUrl)->setAccessToken($accessToken)->post("admin/webhooks.json",
[
'webhook' => 
['topic' => 'customers/create',
'address' => 'https://shopify.kast.com/webhook',
'format' => 'json'
]
]);

路线

Route::post('/webhook', 'ReceiverController@webhook');

接收器控制器

public function webhook()
{
send sms/email to admin
}

现在当我在商店管理员设置中配置webhook并发送测试通知或创建客户时,我会收到短信/电子邮件

但是,当我从管理页面中删除网络钩子设置并为商店创建新客户时,我没有收到短信。

我的应用的 shopify.php(网络钩子配置(是否有任何错误?

PS:商店域名founz.myshopify.com,应用程序托管https://shopify.kast.com

很可能您没有使用访问令牌注册 Webhook。

如果您使用的是OseintowShopify,您的shopify.php文件应如下所示:

<?php
return [        
'key' => env("SHOPIFY_APIKEY", '0f20e4692981aefb8558etrgrh72thty5'),
'secret' => env("SHOPIFY_SECRET", 'fgghg55666585f1a09214drtg56454g')
]; 

让它只保存公共应用的凭据。

看起来您尚未使用访问令牌注册任何 Webhook。当您使用 shopify 管理员注册网络钩子时,该网络钩子将触发到所有应用程序。除非你知道自己在做什么,否则不要这样做。

相反,请尝试使用带有访问令牌的 Postman 注册相同的 Webhook,看看它是否正常工作。然后使用您的编程技能将其自动化。干杯!

这可能有两个主要原因。

1( 无法成功创建网络钩子。检查此 请与 API 调用 获取请求

GET /admin/api/2019-10/webhooks.json

如果您在响应中没有获得所需的网络钩子,请创建它

2(在Laravel太平洋开发中,你需要绕过VerifyCsrfToken中间件进行Webhook路由 由于Laravel不允许和阻止跨站点请求 default.to 请按照以下步骤操作。

转到app/http/middleware/VerifyCsrfToken并将您的路由添加到$except数组中。

例如:

protected $except = [
'/app/uninstalled-webhook-shopify/*',
'/products/create-webhook-shopify/*',
];

最新更新