Integrating Talleo...

in Talleo4 years ago


Integrating other software with Talleo is mostly consistent with how any CryptoNote coin can be integrated.

Currently we support integrating with code written in C++, PHP, JavaScript and Python 3.6.

For wallet integration, it is essential that password is used during all RPC requests as Talleo's wallet daemon doesn't support password-less connections due to high security requirements.

For daemon integration, Talleo's daemon contains a few RPC calls that don't exist in other CryptoNote coins and some RPC methods return data differently due to timeout constrains. Some common binary RPC methods have JSON equivalent in Talleo daemon so they can be used in interpreted languages like PHP, JavaScript and Python. All API calls are limited to 32-bit signed integers, any larger numbers will be returned as strings.

Any XMLHTTPRequest (XHR) connections from websites to the daemons must be tunneled through HTTPS->HTTP proxy as neither walletd or Talleod supports direct SSL/TLS connections due to bug in earlier versions of Boost library. Only Apache 2 can be used to create the tunnels, as nginx is very slow. Other http daemons have not been tested yet.

Connections to the wallet daemon are by default restricted to loopback interface, so malicious users can't access the loaded wallet through internet or local network, and send coins without consent of wallet owner.

Connections to node daemon are by default open to other nodes, but some sites need to explicitly allow connections to RPC server from other hosts.

Requesting payments from Talleo user...

This is just an example how requesting payments can be implemented in website that wants to support payments using Talleo.

During checkout, user selects Talleo as payment method and decides that he/she wants to pay using his webwallet account. Shop website sends payment request containing shop's Talleo address associated with the customer, possible payment ID for separating multiple transactions to same wallet address, total worth of the items user purchased in TLO and callback address to send verification information.

Payment ID is optional sequence of hexadecimal numbers that can contain for example customer ID and transaction number of the payment. Example of Payment ID is "5465737457656257616c6c657454616c6c656f5061796d656e74546573744944".

When user enters one-time authorization number to the payment confirmation window, the webwallet sends the payment using the provided information and sends encoded message to the provided callback address containing shop's wallet address, used payment ID and transaction hash of the payment.

Shop can use this information to verify that the transaction is sent to correct address and has enough confirmations, and decide to send the purchased items to the buyer. Suggested minimum requirement is 10 confirmations, meaning there is 10 other blocks mined after the block containing the transaction for the payment.

Payments using webwallet and callback are easier to verify than sending payment using desktop wallet as shop knows transaction hash as soon as the transaction is sent and doesn't need to query the wallet using payment ID until the transaction appears.

Originally posted on Uptrennd and Publish0x