Ce tutoriel montre comment configurer les paramètres de magasin eBay à l'aide de l'API de trading eBay. La partie 1 a couvert le tableau de bord du développeur et la configuration de la base de données; Cette partie se concentre sur les paramètres des magasins, avec la partie 3 couvrant les ajouts de produits.
Concepts clés:
Ebay
pour rationaliser les demandes d'API, y compris l'ID de session et la gestion des jetons utilisateur. Configuration des dépendances:
Installez les bibliothèques nécessaires à l'aide du compositeur. Créer composer.json
:
{ "require": { "slim/slim-skeleton": "dev-master", "slimcontroller/slimcontroller": "dev-master", "guzzlehttp/guzzle": "4.*", "vlucas/valitron": "~1.2", "codeguy/upload": "*" }, "autoload": { "classmap": [ "controllers", "classes" ] } }
Cela inclut Slim (Framework), SlimController (support MVC), Guzzle (client HTTP), Valitron (validation du formulaire) et Codeguy / Upload (Manipulation de fichiers).
Créer index.php
:
<?php require 'vendor/autoload.php'; $app = new \SlimController\Slim([ 'templates.path' => 'templates' ]); $app->view(new \Slim\Views\Twig()); $app->view->parserOptions = [ 'charset' => 'utf-8', 'cache' => realpath('templates/cache'), 'auto_reload' => true, 'strict_variables' => false, 'autoescape' => true ]; $app->hook('slim.before', function () use ($app) { $app->view()->appendData(['baseUrl' => '/tester/ebay_trading_api']); }); $app->container->singleton('ebay', function () use ($app) { $id = 1; $settings_result = $app->db->query("SELECT user_token, run_name, dev_id, app_id, cert_id, site_id FROM settings WHERE id = $id"); $settings = $settings_result->fetch_object(); return new Ebay($settings); }); $app->container->singleton('db', function () { $server = 'localhost'; $user = 'user'; $pass = ''; $database = 'ebaytrading'; return new mysqli($server, $user, $pass, $database); }); $app->addRoutes([ '/' => 'Home:index', '/settings' => 'Settings:view', '/settings/update' => 'Settings:update', // ... other routes ... ]); $app->run();
Cela met en place des modèles minces, des modèles de brindilles et de la connexion de la base de données. La classe Ebay
(détaillée ci-dessous) est intégrée dans le conteneur.
la classe Ebay
(classes/Ebay.php
):
<?php class Ebay { public $compatability_level = 885; public $sandbox_url = 'https://api.sandbox.ebay.com/ws/api.dll'; public $url = 'https://api.ebay.com/ws/api.dll'; // ... other properties ... public function __construct($settings) { // ... property assignment ... } public function request($method, $request_body) { // ... Guzzle request handling ... } public function getSessionID() { // ... GetSessionID API call ... } public function getUserToken($session_id) { // ... FetchToken API call ... } public function getUserPreferences() { // ... GetUserPreferences API call and data processing ... } public function getEbayDetails($detail_name) { // ... GeteBayDetails API call and data processing ... } }
Cette classe résume la logique d'interaction API, y compris les méthodes d'obtention des ID de session, des jetons utilisateur, des préférences utilisateur et des détails eBay. La méthode request
gère les appels d'API réels à l'aide de Guzzle.
Stocker les paramètres du contrôleur (controllers/Settings.php
):
<?php class Settings extends \SlimController\SlimController { public function viewAction() { // ... Fetches user preferences, shipping services, and store settings from DB and API. Renders 'settings/view.twig' ... } public function updateAction() { // ... Uses Valitron for validation, then updates store settings in the DB using prepared statements. Handles success/failure messages and redirects ... } }
Ce contrôleur gère la visualisation et la mise à jour des paramètres des magasins. Il interagit avec la classe Ebay
et la base de données.
Modèles (dans templates
répertoire):
base.twig
: Disposition de base à l'aide de bootstrap. settings/view.twig
: Forme de visualisation et de modification des paramètres des magasins. De détails supplémentaires:
L'implémentation complète implique des corps de demande XML détaillés pour les appels API, la gestion des erreurs, la gestion des formulaires, etc. Les extraits fournis illustrent la structure centrale et l'interaction avec l'API de trading eBay. N'oubliez pas de remplacer les informations d'identification de la base de données et les clés API par vos valeurs réelles. Les FAQ à la fin de l'entrée d'origine fournissent un contexte supplémentaire et des informations de dépannage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!