Shopify Webhook не работает для приложения / удален

Я создал приложение shopify с PHP. и зарегистрировал веб-перехватчик для "приложение / удалено". Что удалит данные из моей базы данных.

Но когда я удаляю это приложение, веб-перехватчик не запускается. Потому что магазин не удаляется из моей базы данных.

Вот мой код:

`POST /admin/webhooks.json
'webhook'  => array(
    "topic" => "app/uninstalled",
    "address" => "https://my-domain/apps/app-name/uninstall.php",
    "format" => 'json',
 ),`

Может ли кто-нибудь сказать мне, в чем проблема и что мне нужно отредактировать?

Я давно пробовал, но теперь застрял в этом ....


person Mobashir    schedule 29.01.2018    source источник


Ответы (2)


Попробуйте использовать с обработкой исключений: -

<?php 
try
{
	$webhook_delete = array(
	'webhook' =>
	     array(
		'topic' => 'app/uninstalled',
		'address' => 'https://your-domain/app/delhook.php?shop=shop-name',
		'format' => 'json'
	     )
        );
        $result = $shopify('POST /admin/webhooks.json',$webhook_delete);
}
catch (shopify\ApiException $e)
{
      # HTTP status code was >= 400 or response contained the key 'errors'
	echo $e;
	print_r($e->getRequest());
	print_r($e->getResponse());
}
catch (shopify\CurlException $e)
{
      # cURL error
	echo $e;
	print_r($e->getRequest());
	print_r($e->getResponse());
}

Вы можете передать имя магазина с адресом в ссылке и получить его на delhook.php или в вашем файле.

Delhook.php

if(isset($_REQUEST['shop'])) { 
  //here you can remove store from your database.
}

Если вы получите какую-либо ошибку, он распечатает ее.

person Gur Janjua    schedule 29.01.2018
comment
Я думаю, ваш код будет проверять, зарегистрирован ли веб-перехватчик или нет при регистрации веб-перехватчика. Но я сказал, что могу зарегистрировать веб-перехватчик, но он не срабатывает, когда я удаляю приложение. - person Mobashir; 29.01.2018
comment
В основном вы хотите удалить хранилище из своей базы данных, когда зарегистрирован веб-перехватчик. Таким образом, вы можете передать переменную с адресом, по которому вы можете получить хранилище и удалить хранилище из своей базы данных. я редактирую свой код, вы можете проверить сейчас. Надеюсь, это поможет вам. - person Gur Janjua; 29.01.2018
comment
@Mobashir - Пожалуйста, проверьте код сейчас, если веб-перехватчик зарегистрируется, он отправит параметр в ваш файл, где вы можете указать код для удаления магазина из базы данных. - person Gur Janjua; 29.01.2018
comment
Извините! похоже, ничего не изменилось после использования вашего кода ... Спасибо за вашу помощь. Надеюсь, что ваше следующее решение подойдет. - person Mobashir; 29.01.2018

Если вы считаете, что веб-перехватчик был создан. В https://my-domain/apps/app-name/uninstall.php поместите эту строку кода

$webhook = file_get_contents('php://input');
$webhook = json_decode($webhook, TRUE);
$newFileName = "something.txt";
file_put_contents($newFileName, $webhook);

Он будет перехватывать отправку json shopify, когда вы удаляете свои приложения и помещаете в файл something.txt, после чего получает информацию, которую вы используете для хранения. Json обычно выглядит как

{
  "id": 690933842,
  "name": "Super Toys",
  "email": "[email protected]",
  "domain": "super.myshopify.com",
  "province": "Tennessee",
  "country": "US",
  "address1": "190 MacLaren Street",
  "zip": "37178",
  "city": "Houston",
  "source": null,
  "phone": "3213213210",
  "latitude": null,
  "longitude": null,
  "primary_locale": "en",
  "address2": null,
  "created_at": null,
  "updated_at": null,
  "country_code": "US",
  "country_name": "United States",
  "currency": "USD",
  "customer_email": "[email protected]",
  "timezone": "(GMT-05:00) Eastern Time (US & Canada)",
  "iana_timezone": null,
  "shop_owner": "Steve Jobs",
  "money_format": "$",
  "money_with_currency_format": "$ USD",
  "weight_unit": "kg",
  "province_code": "TN",
  "taxes_included": null,
  "tax_shipping": null,
  "county_taxes": null,
  "plan_display_name": "Shopify Plus",
  "plan_name": "enterprise",
  "has_discounts": true,
  "has_gift_cards": true,
  "myshopify_domain": null,
  "google_apps_domain": null,
  "google_apps_login_enabled": null,
  "money_in_emails_format": "$",
  "money_with_currency_in_emails_format": "$ USD",
  "eligible_for_payments": true,
  "requires_extra_payments_agreement": false,
  "password_enabled": null,
  "has_storefront": true,
  "eligible_for_card_reader_giveaway": false,
  "finances": true,
  "primary_location_id": 905684977,
  "checkout_api_supported": true,
  "multi_location_enabled": false,
  "setup_required": false,
  "force_ssl": false,
  "pre_launch_enabled": false,
  "enabled_presentment_currencies": [
    "USD"
  ]
}
person someoneuseless    schedule 24.07.2019