我正在使用laravel为商家和Shopify创建一个应用程序。我已经配置并安装了webhook,以便在config/shopify中创建新客户时向管理员发送通知。我的应用程序中的php
。
购物化。php
use Oseintow\Shopify\Facades\Shopify;
use Laravel\Socialite\Facades\Socialite;
use App\User;
use App\Store;
use App\UserProvider;
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
}
现在,当我在商店管理设置中配置webook并发送测试通知或创建客户时,我会收到短信/电子邮件
但是当我从管理页面删除webhook设置并为商店创建新客户时,我不会收到短信。
我的应用程序在shopify.php(webook配置)中是否有任何错误?
PS:商店域名是founz。神秘化。com
和应用程序被托管https://shopify.kast.com
很可能您没有使用访问令牌注册webhook。
如果您使用的是Oseintow\Shopify
,您的Shopify。php
文件应如下所示:
<?php
return [
'key' => env("SHOPIFY_APIKEY", '0f20e4692981aefb8558etrgrh72thty5'),
'secret' => env("SHOPIFY_SECRET", 'fgghg55666585f1a09214drtg56454g')
];
让它只保存公共应用的凭据。
看起来您还没有使用访问令牌注册任何webhook。当您使用shopify admin注册webhook时,该webhook将被激发到所有应用程序。除非你知道自己在做什么,否则不要那样做。
相反,尝试使用邮递员和访问令牌注册相同的网络钩子,看看它是否工作。然后使用你的编程技能来自动化它。干杯!
这可能有两个主要原因。
1)网络钩子无法成功创建。要检查此请使用GET请求进行API调用
GET /admin/api/2019-10/webhooks.json
如果您没有在响应中获得所需的webhook,请创建它
2) 在Laravel spacific开发中,您需要为您的webhook路线绕过VerifyCsrfToken中间件,因为Laravel不允许这样做
转到app/http/middleware/VerifyCsrfToken
例如:
protected $except = [
'/app/uninstalled-webhook-shopify/*',
'/products/create-webhook-shopify/*',
];