New Deposit Examples - aegonplatform/gateway-pub-sample GitHub Wiki
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;