Cet article est PHP développement Ethernet système carré, principalement introduit l’utilisation de PHP pour l’interaction de contrat développement intelligente, compte création, commerce, transfert, développement de jetons et filtres et événements et autre contenu.
Lorsque j’ai considéré tout d’abord payer en cryptant l’argent, j’ai regardé les solutions disponibles comme Stripe. Je pense que le problème avec rayure est qu’il permet seulement de paiements Bitcoin en utilisant un compte marchand américain, donc ce n’est pas une option pour moi. Dans le monde éthérique de carré, il semble encore pire. Il y a certains nouveaux services, mais ils ont tous envie de partager le gâteau.
Alors, que devons-nous construire le carré éthérique de télépaiement à partir de zéro ?
Le serveur WEB qui exécute PHP.
Il n’y a au moins un nœud de parité dans le réseau privé avec RPC activée.
Un générateur d’adresses virtuel sur un serveur réseau, tels que de la vanité-eth.
Alors, comment ça marche ?
Calculez le prix de l’EPF en utilisant le prix actuel dans le Coinbase ou le Kraken API.
Utilisez le constructeur virtuel pour générer des paires d’adresses et de chiffrer ou de transférer la clé privée à un autre serveur.
Affiche l’adresse générée au client, et si le paiement est reçu, l’adresse est vérifiée toutes les quelques secondes.
Il semble y avoir aucun problème en théorie, nous allons le construire.
Étape 1 : Configurer le serveur
Nous allons utiliser la vanité-eth dans Nodejs pour générer l’adresse.
npm install -g vanity-eth@1.0.4"
Après avoir installé la vanité-eth sur Windows :
Certains nœuds de Etherum sont également requis. J’utilise la parité parce que c’est rapide et fiable.
Utilisez ces paramètres pour le lancer, mais ne pas exposer les nœuds directement à l’Internet, en les laissant derrière le pare-feu sans redirection de port.
parity --jsonrpc-interface 0.0.0.0 --jsonrpc-hosts="all" --auto-update=all --jsonrpc-cors null
Pour compléter le journal de parité synchronisée :
Pour un déploiement plus rapide, vous pouvez utiliser le conteneur de parité Docker. Vous pouvez également enregistrer les données afin que vous n’avez pas à resynchroniser chaque fois vous refaire le conteneur.
Étape 2 : Écrire une classe de paiement
Tout d’abord créer un nomlibs
Dossier, puis repo clone l’ethereum-Php dedans. Le projet de l’ethereum-php est un bon paquet pour la classe Json-rpc.
Nous avons ensuite utiliser les classes suivantes et les enregistrer commeEthpay.php。 Il s’agit de la logique principale de traitement des paiements. Vous pouvez l’utiliser pour :
≪ ? Php define (« rpc_ip », « 127.0.0.1 ») ; définir (« Rpc_port », 8545) ; exigent « libs/ethereum-php/ethereum.php » ; $e = new Ethpay () ; ethpay de classe {private $eth ; Nous allons établir une connexion vers la parité nœud function __construct () {$this -> eth = nouveau Ethereum (rpc_ip, Rpc_port) ; Si ( ! $this -> eth -> net_version ()) Die (« erreur RPC ») ; } / * * Obtenir le solde d’une adresse, * l’équilibre de la parité apparaît dans Wei dans 16 ** fonction mathématique utilisation BC pour le convertir * / function getbalanceofaddress ($addr) {} $Eth _hex = $this - > eth -> eth_getbalance ($addr, « dernier ») ; $Eth = $this -> wei2eth ($this -> bchexdec ($eth _hex)) ; $Pending _hex = $this - > eth -> eth_getbalance ($addr, « en attente ») ; $Pending = $this -> wei2eth ($this -> bchexdec ($pending _hex)) ; Return Array (' balance ' = > $eth, « en attente » = > $pending) ; } Function Getcurrentprice ($currency = « USD ») {$data = Json_decode (file_get_contents (« https://api.coinbase.com/v2/prices/ETH- ». $currency. » / Spot "), true) ; Return $data [' Data '] [' quantité '] ; / * * Nous allons utiliser Vanityeth pour générer des paires de clés privées * NPM install-g Vanity-eth * nous devons reformater la chaîne de sortie à utiliser comme JSON * / function genPair () {} EXEC (« Vanityeth », $outputAndErrors, $return _value) ; $Answer = implode (NULL, $outputAndErrors) ; $Answer = Str_replace ("adresse : «, » « adresse » :", $answer) ; $Answer = Str_replace ("Privkey : « Privkey » «, » : ', $answer) ; $Answer = str_replace (' \ «, » «, $answer) ; Retour Json_decode ($answer, true) ; } //The les caractéristiques suivantes sont utilisées pour convertir et traiter les grande fonction numérique Wei2eth ($wei) {return bcp ($wei, 1000000000000000000,18) ; } Function Bchexdec ($hex) {si (strlen ($hex) == 1) {return hexdec ($hex) ; } Else {$remain = substr ($hex, 0, -1) ; $Last = substr ($hex, -1) ; Return Bcadd (Bcmul, $this -> bchexdec ($remain)), Hexdec ($last)) ; } }}
Dernière étape : s’intégrer à votre site
Selon votre service, il y a plusieurs façons de le faire.
Au ciel de l’API, nous fournissons chaque client avec une adresse ETH qui peut être déposée dans le fonds. Cron vérifier toutes les adresses de clients / minute pour détecter les changements. Si on ajoute ETH à une adresse, l’équilibre est converti en un contingent de l’API, nos clients avez même pas besoin ouvrir une session le site pour ajouter des fonds.
Intégration de l’échantillon dans le ciel de l’API :
Une autre façon consiste à calculer le prix fixe et l’enregistrer dans une session utilisateur. Les visiteurs doivent payer sur le site, et vous devrez interroger AJAX pour les paiements qui ont été reçues. Si vous recevez le montant intégral, le backend déclenche la vente.
Plus important encore, vous n’avez pas besoin de services externes d’intégrer le système de paiement carrés éthérique sur votre site Internet. Venez et jouez avec le carré de l’éther ensemble tout en apprenant.