Novachange
Integração com o seu serviço
Documentos do comerciante
Criar pedido
Usar método public/exchanger/order/create
| Nome | Descrição | Modelo |
| routeId | rota de identificação | ObjectID |
| partner | parceiro de link | STRING |
| amount | Valor em | FLOAT |
| fromValues[0][key] | nome da chave | ObjectID |
| fromValues[0][value] | valor para este campo | STRING |
| toValues[0][key] | nome da chave | STRING |
| toValues[0][value] | valor para este campo | STRING |
| routeValues[0][key] | nome da chave | ObjectID |
| routeValues[0][value] | valor para este campo | STRING |
| lang | lang client (ru,en) | STRING |
| agreement | acordo | BOOLEAN |
| hideOutData | requisitos de segurança | BOOLEAN |
| clientCallbackUrl | um retorno de chamada quando o aplicativo for concluído o cliente verá um botão para retornar ao site e o cliente será direcionado para esta URL ?status=success ou ?status=error | STRING |
| ipnUrl | URL de notificação de pagamento instantâneo (será chamado quando o pedido mudar de status) | STRING |
| ipnSecret | string para criar hash seguro no ipn url | STRING |
Você pode encontrar a documentação do sistema de autorização em sua área pessoal. Mais informações sobre como trabalhar com métodos e dados adicionais podem ser encontradas em
IPN (Notificação sobre a alteração do status da solicitação de pagamento)
Para receber uma notificação de alteração de status do pedido, você precisa enviar parâmetros adicionais:
clientCallbackUrl- um retorno de chamada quando o aplicativo for concluído o cliente verá um botão para retornar ao site e o cliente será direcionado para esta URLhideOutData- ocultar os detalhes do destinatárioipnUrl- Link HTTP/HTTPS para notificar seu servidor.ipnSecret- String aleatória para criar uma assinatura de solicitação (para manter a integridade da solicitação)
- A solicitação será enviada pelo método POST
- O IPN será enviado uma vez
- A entrega do IPN não é garantida (se o servidor não respondeu ao pedido, não será reenviado)
Exemplo de IPN
- POST
- ['Content-Type'] = 'application/x-www-form-urlencoded'
orderUID:Number() - Pedido uidorderId:String(ObjectId) -Pedido idnewStatus:String() - Pedido status atualinAmount:String(number) - order in sumoutAmount:String(number) - order out sumxml_from:String() - Pedido uidxml_to:String() - Pedido uidtimestamp:Number() - tempo unix ipn notificartoValues:Array([{key,name,value}]) - requisitos do pedido
Lista de status
new- novo pedidowaitPayment- aguardando o pagamento do usuárioerrorPayment- erro de pagamento do usuário (erro de envio do comerciante)inProgress- em andamento (espera administrador ou pagamento do aplicativo)inProgressPayout- na fila para pagamento (pagamento aceito com sucesso) (se configurado em moeda estrangeira, o pagamento automático será inicializado)errorPayout- erro de pagamento (ocorreu um erro durante o pagamento)hold- pausado (problemas com o aplicativo)done- pedido concluído com sucessoreturned- iniciamos a devolução mas nem todas as condições foram cumpridas. Não foi possível concluir a transação ao remetentedeleted- pedido excluído (cancelado)
Verificação da soma de verificação da solicitação (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
Controle de pagamento
- Se você precisar gerenciar o status das solicitações, crie-as usando autorização. Todas as solicitações serão refletidas em sua área pessoal;
- Você pode salvar o segredo e o UID de solicitação e ir manualmente para a solicitação ao especificar esses dados na barra de endereço
Pagamento
-
Você pode usar / pagamento / para mostrar a página de pagamento
// schema
https://www.novachange.cc/user-lang/payment/order-uid/order-secret
// example result
https://www.novachange.cc/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb - Além disso, você pode simplesmente fornecer um link para a troca, pois é visto por todos os clientes de acordo com o mesmo esquema especificado na primeira variante, exceto /payment/ deve ser substituído por /order/
- Existem parâmetros no método que permitem exibir os dados de pagamento ou a forma de pagamento em seu site, você pode usá-los. IMPORTANTE: se for o método com pagamento manual você precisa atualizar o status do pedido de waitPayment para inProgress após o pagamento.