Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

121
Vistas
Elimine los detalles de la tienda de la aplicación PHP después de desinstalar la aplicación de Shopify Store

Quiero eliminar los detalles de la tienda de la aplicación PHP después de desinstalar la aplicación de la tienda Shopify que se almacenan en la base de datos cuando se instala la aplicación.

Ahora tengo una solución para esto como la siguiente:

 $create_webhook = array('webhook'=>array( 'topic'=> 'app/uninstalled', 'address'=>'{{ mydomainname}}/uninstalled.php', 'format'=> 'json' )); $request_update = $shopify('POST /admin/webhooks.json ', array(), $create_webhook);

Pero, ¿podemos crear este webhook en el momento de la instalación o en cualquier otro momento?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Su código de ejemplo está registrando una devolución de llamada a la que accederá el webhook de desinstalación de Shopify que se ejecutará cuando su aplicación se desinstale a través de la interfaz de usuario de administración de Shopify. Asegúrese de que la propiedad "dirección" sea una URL pública para la devolución de llamada de desinstalación de sus aplicaciones.

Sí, puede registrar una devolución de llamada para webhook en cualquier momento.

Cuando se desinstala la aplicación, Shopify enviará una solicitud POST a la dirección que especificaste en la propiedad 'dirección' con una carga json que tiene los detalles de los clientes.

Tenga cuidado de recopilar el encabezado X-Shopify-Hmac-SHA256 y verifique que se trate de una solicitud genuina antes de que su devolución de llamada elimine los datos del cliente.

Asegúrese de tener todos los datos que necesita antes de ejecutar el enlace de desinstalación. La desinstalación revoca los tokens de cuenta, elimina los webhooks registrados y los datos de la aplicación de Shopify.

about 4 years ago · Santiago Trujillo Denunciar

0

Sin conocer el esquema, es difícil saber qué datos está tratando de eliminar. Si puede proporcionar un ejemplo de qué datos está insertando y qué tipo de columnas están disponibles, es posible que podamos brindarle un poco más de ayuda.

Habiendo dicho todo eso, es bastante sencillo eliminar una fila de una base de datos. Supongo que está buscando un script para eliminar algo de una base de datos, lo siguiente lo hará. Debe actualizar la consulta SQL para reflejar su esquema.

 <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // sql to delete a record $sql = "DELETE FROM MyGuests WHERE id=3"; if ($conn->query($sql) === TRUE) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . $conn->error; } $conn->close(); ?>
about 4 years ago · Santiago Trujillo Denunciar

0

Implementé este código para suscribir un webhook a un evento de desinstalación de una aplicación de Shopify. Creé una aplicación de Shopify personalizada en PHP. Así que aquí está la explicación paso a paso:

  1. Agrega este código donde quieras crear un webhook. En mi caso, agregué esto al archivo generate_token.php.
 /* subscribe to app uninstall webhook */ $webhook_array = array( 'webhook' => array( 'topic' => 'app/uninstalled', 'address' => 'https://yourwebsite.com/webhooks/delete.php?shop=' . $shop_url, 'format' => 'json' ) ); $webhook = shopify_call($access_token, $shop_url, "/admin/api/2021-10/webhooks.json", $webhook_array, 'POST'); $webhook = json_decode($webhook['response'], JSON_PRETTY_PRINT); /** subscribe to app uninstall webhook **/
  1. Para probar si el webhook se crea o no, puede ejecutar el siguiente código. En mi caso, agregué este código a mi archivo index.php de la aplicación para verificar la respuesta:
 $webhook = shopify_call($token, $shop, "/admin/api/2019-10/webhooks.json", array(), 'GET'); $webhook = json_decode($webhook['response'], JSON_PRETTY_PRINT); echo print_r( $webhook );
  1. Cree el archivo delete.php en la carpeta "webhook" (como hemos especificado el archivo: https://yourwebsite.com/webhooks/delete.php para realizar la eliminación) y use las funciones de MySQL para eliminar los datos almacenados de la base de datos.
 <?php require_once("../inc/mysql_connect.php"); require_once("../inc/functions.php"); define('SHOPIFY_APP_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxx'); // Replace with your SECRET KEY function verify_webhook($data, $hmac_header) { $calculated_hmac = base64_encode(hash_hmac('sha256', $data, SHOPIFY_APP_SECRET, true)); return hash_equals($hmac_header, $calculated_hmac); } $res = ''; $hmac_header = $_SERVER['HTTP_X_SHOPIFY_HMAC_SHA256']; $topic_header = $_SERVER['HTTP_X_SHOPIFY_TOPIC']; $shop_header = $_SERVER['HTTP_X_SHOPIFY_SHOP_DOMAIN']; $data = file_get_contents('php://input'); $decoded_data = json_decode($data, true); $verified = verify_webhook($data, $hmac_header); if( $verified == true ) { if( $topic_header == 'app/uninstalled' || $topic_header == 'shop/update') { if( $topic_header == 'app/uninstalled' ) { $sql = "DELETE FROM shops WHERE shop_url='".$shop_header."' LIMIT 1"; $result = mysqli_query($conn, $sql); $response->shop_domain = $decoded_data['shop_domain']; $res = $decoded_data['shop_domain'] . ' is successfully deleted from the database'; } else { $res = $data; } } } else{ $res = "The request is not from Shopify";} error_log('Response: '. $res); //check error.log to see the result ?>
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda