New Deposit Examples - aegonplatform/gateway-pub-sample GitHub Wiki

Examplos


Neste exemplo apresentamos como buscar um novo endereco de deposito e criar um QRCore com este endereco inclusive adicionando o valor a ser enviado pelo usuario, podendo este, apenas ler o QRCode diretamente da sua carteira Bitcoin.

Aegon Platform

Para este exemplo, mostraremos como nossa propria plataforma utiliza nosso gateway, abaixo voce pode acompanhar o processo de solicitacao, que consiste em adicionar creditos a plataforma, mas poderia ser algo com valor fixo, digamos um produto que custa X.XXX BTCs (sendo BTC a moeda que buscaremos o endereco.

images/ticker-amount-deposit.png

Como nao temos valor fixo, solicitamos qual a moeda que o usuario quer fazer o deposito, o valor em BTC ou em Dolar e avancamos para a proxima tela.

Neste momento, fazemos a solicitacao do endereco para o gateway e geramos o QRCode com o resultado.

images/deposit-address-qrcode.png

Solicitacao Endereco

Para solicitar o endereco, voce precisara das seguintes informacoes, repassadas a voce pela equipe da Aegon Platform. key, secret, gateway-pub, source. Estas informacoes sao utilizadas na assinatura HMAC padrao utilizada pela Aegon.

Abaixo fizemos um exemplo com pseudo-codigo sem linguagem specific para facilitar o entendimento, porem, disponibilizamos codigos em NodeJS e PHP prontos para serem utilizados ja com as bibliotecas para que apenas sejam copiadas e coladas em seu sistema.

//those are all static stuff, dont change them
declare source = 'my-platform-app-name'; // Name my platform
declare gatewayPub = 'http://gateway-pub.my-platform-app.com'; // My gateway URI
declare key = 'KeyKeyKeyKeyKey'; // My key
declare secret = 'SecretSecretSecretSecretSecretSecret'; // My secret

//get logged in customer requesting this deposit
declare customer = getLoggedInCustomer(session);
declare depositAmountToCreateQRCodeWith = getDepositAmountToCreateQRCodeWith(session)
declare ticker = getTicker();//usually "BTC" or other coin
print(customer.cid); //X3768871239 - my system's customer ID (could be anything from int to string)
print(customer.name);//Rafael Fernandes
print(customer.email);//[email protected]
print(customer.lang);//en - for english (could be empty)

//create signature
declare signature = createHmac(gatewayPub + "/api/deposits/getnewaddress?" + 
                                "&ticker="+ticker +
                                "&source="+source +
                                "&email="+customer.email +
                                "&cid="+customer.cid +
                                "&lang="+customer.lang
                    )

declare httpHeader = {
          'accept': 'application/json',
          'content-type': 'application/json',
          'ag-access-key': key,
          'ag-access-timestamp': Date.now(),
          'ag-access-signature' : signature
        },

declare addressResult = sendHttpGet(gatewayPub + "/api/deposits/getnewaddress?" + 
                                "&ticker="+ticker +
                                "&source="+source +
                                "&email="+customer.email +
                                "&cid="+customer.cid +
                                "&lang="+customer.lang)

declare qrcodeString = "bitcoin:" + addressResult + "?amount=" + depositAmountToCreateQRCodeWith

return qrcodeString and address to UI;