Integração com o seu serviço

comerciante

Criar ordem

useMethod public/exchanger/order/create

título Descrição tipo
routeId id da rota ObjectID
partner código de parceiro STRING
amount montante FLOAT
fromValues[0][key] chave de campo ObjectID
fromValues[0][value] valor para o campo STRING
toValues[0][key] chave de campo STRING
toValues[0][value] valor para o campo STRING
routeValues[0][key] chave de campo ObjectID
routeValues[0][value] valor para o campo STRING
lang língua STRING
agreement contrato BOOLEAN
hideOutData ocultar detalhes BOOLEAN
clientCallbackUrl callback, quando a aplicação estiver concluída, o cliente verá um botão para regressar ao sítio e será redireccionado para este URL. ?status=success ou em ?status=error STRING
ipnUrl URL de notificação de pagamento instantâneo (será chamado quando o estado da encomenda for alterado) STRING
ipnSecret uma cadeia de caracteres para criar um hash seguro no url ipn STRING

A documentação do sistema de autorização pode ser consultada na sua conta pessoal. Para mais informações sobre como trabalhar com o sistema, métodos e dados adicionais, consulte

IPN (Notificação de uma alteração do estado de um pedido de pagamento)

Para ser notificado quando o estado de um pedido for alterado durante o processo de criação, forneça os seguintes parâmetros adicionais:

  • clientCallbackUrl - callback, quando a aplicação estiver concluída, o cliente verá um botão para regressar ao sítio e será redireccionado para este URL.
  • hideOutData - ocultar dados do destinatário
  • ipnUrl - Ligação HTTP/HTTPS para notificar o seu servidor.
  • ipnSecret - Uma cadeia aleatória para criar uma assinatura de pedido (para manter a integridade do pedido).
  1. O pedido será enviado utilizando o método POST
  2. A IPN será enviada uma vez
  3. A entrega da IPN não é garantida (se o servidor não responder ao pedido, este não será reenviado)

Exemplo de IPN

  • POST
  • ['Content-Type'] = 'application/x-www-form-urlencoded'


  • orderUID :Number() - ordem uid
  • orderId :String(ObjectId) -ordem id
  • newStatus :String() - ordem estado atual
  • inAmount :String(number) - order in sum
  • outAmount :String(number) - order out sum
  • xml_from :String() - ordem uid
  • xml_to :String() - ordem uid
  • timestamp :Number() - hora unix e notificação ipn
  • toValues :Array([{key,name,value}]) - detalhes da aplicação

page.merchants.statusesList

  • new - nova aplicação
  • waitPayment - à espera de pagamento do utilizador
  • errorPayment - erro de pagamento do utilizador (erro de envio do comerciante)
  • inProgress - em curso (a aguardar processamento pelo administrador ou pagamento do pedido)
  • inProgressPayout - na fila de espera para pagamento (pagamento aceite com sucesso) (se estiver configurado um pagamento automático em moeda, este será inicializado)
  • errorPayout - erro de pagamento (ocorreu um erro durante o pagamento)
  • hold - aplicação congelada (problemas com a aplicação)
  • done - o pedido foi pago com sucesso
  • returned - o pedido foi pago, mas não foram cumpridas todas as condições de troca e os métodos de devolução do remetente
  • deleted - o pedido foi suprimido (cancelado)

Verificação da soma de controlo do pedido (IPN)

sha256(orderId:newStatus:inAmount:outAmount:xml_from:xml_to:timestamp:ipnSecret)

        
const stringForHash = orderId+":"+newStatus+":"+inAmount+":"+outAmount+":"+xml_from+":"+xml_to+":"+timestamp+":"+ipnSecret;
// example string for hash 5d8e6002b80b7b4cd75a6424:inProgress:2:317.42:ETH:WMZ:1571328406072:SECRET123

const hash = crypto.createHash('sha256').update(stringForHash).digest('hex')
// example hash af3acf947e6f0e0f2c267e300b8582e504dba12d1f2d058652b7414163c09f48
        
      

controlo dos pagamentos

  1. Se precisar de controlar o estado dos pedidos, crie-os com a ajuda da autorização, todos os pedidos serão apresentados na sua conta pessoal;
  2. Pode guardar o UID e o segredo do pedido e navegar manualmente para o pedido introduzindo estes detalhes na barra de endereço.

Pagamento

  1. Pode utilizar /payment/ para apresentar a página de pagamento.

    // schema
    https://www.aura.legal/user-lang/payment/order-uid/order-secret
    // example result
    https://www.aura.legal/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb
  2. Também pode simplesmente fornecer uma hiperligação para a troca, tal como é vista por todos os clientes, da mesma forma que na primeira opção, exceto que /payment/ deve ser substituído por /order/.
  3. O método tem parâmetros que lhe permitem apresentar os dados de pagamento ou uma forma de pagamento no seu sítio que pode utilizar. IMPORTANTE: se estiver a utilizar um método de pré-pagamento, terá de atualizar o estado da encomenda de waitPayment para inProgress após o pagamento.