Comment utiliser PHP pour développer le système de paiement de la place de l’Ethernet

Source : Internet
Auteur : utilisateur
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 nomlibsDossier, 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 :

  • Générer des paires d’adresses

  • Vérifier le solde (en attente et terminé)

  • Convertir de WEI à ETH

≪ ? 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.

Article associé

Nous contacter

Le contenu de cette page provient d'Internet et ne reflète pas l'opinion d'Alibaba Cloud ; les produits et services mentionnés sur cette page n'ont aucune relation avec Alibaba Cloud. Si le contenu de la page vous semble problématique, veuillez nous écrire un courriel, nous traiterons le problème dans les 5 jours suivant la réception de votre message.

Si vous constatez des cas de plagiat de la part de la communauté, veuillez envoyer un courriel à : info-contact@alibabacloud.com et fournir des preuves pertinentes. Un membre de notre équipe vous contactera dans les 5 jours ouvrables.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.