Aperçu

ChainMyne Pay fournit une interface REST basée sur des normes qui permet aux développeurs d'applications d'interagir avec leur compte marchand ChainMyne Pay. Utilisation de ChainMyne API de paiement, les clients peuvent créer une adresse de portefeuille de dépôt pour accepter BTC, ETH et LTC pour le paiement, les actifs numériques en temps réel aux taux fiat et recevoir une notification des paiements reçus.

Environnement

 Les environnements suivants sont disponibles

 

Base URL Chaîne de blocs BTC
Production BTC https://api.chainmynepay.com:5000/usr/wallet/btc/create réseau principal
Bac à sable BTC https://api.digitalpaydev.com:5000/usr/wallet/btc/create testnet
Production BCH https://api.chainmynepay.com:5000/usr/wallet/bch/create réseau principal
Bac à sable BCH https://api.digitalpaydev.com:5000/usr/wallet/bch/create testnet
EPF Production https://api.chainmynepay.com:5000/usr/wallet/eth/create réseau principal
Bac à sable ETH https://api.digitalpaydev.com:5000/usr/wallet/eth/create ropsten
Production SLD https://api.chainmynepay.com:5000/usr/wallet/ltc/create réseau principal
Bac à sable LTC https://api.digitalpaydev.com:5000/usr/wallet/ltc/create testnet

 

Commencer

Pour utiliser API de commerce, l'utilisateur devra suivre quelques étapes simples :

Clé API

En-tête d'autorisation HMAC

Clé API

Pour utiliser l'API, les utilisateurs devront obtenir la clé publique et la clé secrète de l'API, qui sont transmises à l'API avec chaque demande. Les clés API peuvent être générées dans votre tableau de bord marchand à tableau de bord.chainmynepay.com sous Paramètres > section Clés API.

 

Valeur d'en-tête d'autorisation HMAC

Une fois que l'utilisateur a obtenu la clé API, tout est configuré ! Maintenant, il ne reste plus qu'à former une variable d'en-tête d'autorisation HMAC. Afin de former cet en-tête, l'utilisateur aura besoin des variables suivantes :

var apikey = 'clé publique'; // clé obtenue à partir de ChainMyne Pay

var secretkey = 'clé secrète'; // secret obtenu à partir de ChainMyne Pay

var horodatage = Math.floor(Date.now() / 1000); // horodatage en secondes

var nonce = Math.floor(Math.random() * Math.floor(1000000)); // entier nonce aléatoire

La dernière variable nécessaire est les paramètres du corps (JSON), la chaîne se compose de TOUS les paramètres du corps séparés par le signe '&' s'il y en a plusieurs (par exemple : 'ref_id=mk1231sa11×tamp=1588364168&nonce=900288).

bodyString='ref_id=mk1231sa11×tamp=1588364168&nonce=900288'

 

Si les variables d'url et/ou de devise sont passées dans le corps, elles doivent être ajoutées comme suit

bodyString='ref_id=mk1231sa11&url=https://yourwebhookurl.com×tamp=1588364168&nonce=900288¤cy=USD'

Enfin, l'utilisateur doit rassembler toutes les variables et les encoder :

paramètres de l'url et du corps

var hmacDigest = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(bodyString, secretkey));

var authentification = btoa(apikey + ':' + hmacDigest);

C'est ça! L'utilisateur peut désormais utiliser la variable "authentification" comme en-tête pour communiquer avec l'API commerciale.

Identifiant du marchand à utiliser dans l'en-tête *Obligatoire

Un identifiant de marchand doit être transmis dans l'en-tête.

 

L'identifiant de l'utilisateur marchand peut être trouvé dans l'utilisateur ChainMyne Pay tableau de bord sur dashboard.chainmynepay.com ou api.digitalpaydev.com sous Paramètres > section Informations sur le compte.

 

Recevoir des paiements

Créer une adresse de portefeuille de paiement

Post-créer l'API d'adresse de portefeuille

variable = btc, eth, bch

https://api.chainmynepay.com:5000/usr/wallet/<asset>/create

https://api.digitalpaydev.com:5000/usr/wallet/<asset>/create

 

En-têtes :

clé API. 9c0c51ee6f3798e3aae63ea630ddd2b7265fe54f

(valeur de la clé publique)

marchand_id (identifiant du marchand dans les informations de compte)

authentification. (valeur d'authentification générée)

CORPS RAW JSON

{ "ref_id": "ID de référence/facture unique de l'utilisateur par client",

"url": "https://yourwebhookurl.com", (champ facultatif, cela remplacera l'url du webhook définie dans les options de la clé API. )

"timestamp": 1550838976, "nonce": 693795,"currency":"USD" (options USD,CAD,EUR. Si le champ n'est pas inclus, l'USD est utilisé par défaut. )}

Exemple de réponse réussie

{

"statut": "succès",

"données": {

"id_réf": "cor121121",

"prix": 8632,59,

"adresse": "moep287CANJhZoyssrigoHtkMwBiz6uhDt",

"pièce": "BTC",

"expire": "2020-05-04 14:32:46.480"

}

}

Exemple de réponse d'échec

{

"état": "erreur",

"message": "Accès invalide"

}

Ou

{

"état": "erreur",

"message": "Impossible de créer l'adresse

}

Notification de rappel du Webhook de paiement ChainMyne Pay :

Des notifications instantanées de paiement (IPN) sont envoyées par ChainMyne Pay à chaque changement de statut confirmé. Les IPN sont publiés sur l'URL de votre webhook spécifiée dans le tableau de bord utilisateur ChainMyne Pay. Si la passerelle ChainMyne Pay reçoit une réponse HTTP/1.1 200 OK de votre serveur, le message est réputé avoir été correctement délivré.

REMARQUE : cela ne signifie pas que l'application utilisateur a correctement géré les données, mais seulement qu'elles ont été reçues avec succès par le serveur utilisateur !

Si un code d'erreur HTTP est reçu par la passerelle, le serveur ChainMyne Pay tentera de renvoyer l'IPN à des intervalles de temps croissants.

Le délai entre chaque nouvelle publication est le suivant : 1 minute de retard, 2 minutes de retard, 4 minutes de retard, 8 minutes de retard, 20 minutes de retard, 40 minutes de retard, 80 minutes de retard, 160 minutes de retard, 320 minutes de retard, 640 minute de retard et 1 280 minutes de retard. Le système IPN arrête de reposter lorsque :

ChainMyne Pay reçoit une réponse HTTP de base « 200 OK » de votre serveur Web, ou

lorsque 1 280 minutes se sont écoulées depuis le message initial.

Remarque : Cette fonctionnalité s'applique aux comptes Sandbox et Live.

Réponse de l'URL du webhook (IPN)

En-têtes

signature CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(Corps, clé secrète));

Corps

{"id_ref":"wm_123323″,

"prix": 8550.26,

"montant": 0,0006,

"totale":5.13,

"date_heure":"1588354319000",

"id_transaction":"c3c2920e4705cc37c57d0937576d6346c27ca81f2b9e507fd47a1de113b7bba9",

"pièce":"BTC",

"réseau":"testnet",

"Devise: USD"

}

Obtenir le statut de la transaction

https://api.chainmynepay.com:5000/usr/wallet/transactions

https://api.digitalpaydev.com:5000/usr/wallet/transactions

En-têtes

clé API. 9c0c51ee6f3798e3aae63ea630ddd2b7265fe54f

(valeur de la clé publique)

marchand_id (identifiant du marchand dans les informations de compte)

authentification. (valeur d'authentification générée)

CORPS RAW JSON

{"adresse": "bchtest:qpggts6de95hnutg8wrxx55mh9z2dnxp2v64tuqn73",

"horodatage": 1550838976, "nonce": 693795}

Exemple de réponse réussie

{

"statut": "succès",

"données": {

"date_heure": "2020-07-31T22:10:21.000Z",

"adresse": "bchtest:qpggts6de95hnutg8wrxx55mh9z2dnxp2v64tuqn73",

"statut": "payé", (payé, en attente)

"payment_amount": 0.01655245,

"paiement_total": 6,54,

"txid": "0bd4d3c2ab491649bc5c7328aba8d46b2c2c856ca5cd8261d489a7e01c2a5f12",

"prix": 395,23,

"devise": "CAD",

"pièce": "BCH"

}

}

 

Obtenir la clé API

POSTE   https://api. .com:5000/keyauth

POSTE   https://api.digitalpaydev.com:5000/keyauth

En-têtes

'Type de contenu' : 'application/json'

Corps

{"nom d'utilisateur":"clients@email",

"mot de passe": "mot de passe client"

}

Réponse réussie

{

    "statut": "succès",

    "données": {

        "nom": "Nom du marchand",

"merchant_id":"identifiant du marchand"

        "clé_publique": "qw92332bb6f07da62f17fdec1f703e3214cf2d78vv6",

        "clé_secrète": "3w0482d4f3ea4f1f12f8fe250605472989990c6bsc"

    }

}

Réponses d'erreur

les informations d'identification invalides

{

    "état": "erreur",

    "message": "Identifiants non valides"

}

Comptes KYC non vérifiés

{

    "état": "erreur",

    "message": "Non vérifié"

}

fr_FR