univocity / shopify Goto Github PK
View Code? Open in Web Editor NEWIntegrations with shopify
Integrations with shopify
Using Java, and given wallet addresses ( multiple payer wallets, one payee wallet), query the blockchain and return the amount of ADA transferred from payer
to payee
. Return a map with wallet, time and amount sent from all payer wallets to the payee wallet.
As multiple payments could have been made for the same order, and the funds can come from different wallets, we need to reconcile everything in the server to determine whether an order has been paid.
I'm still not sure how to cleanly handle the situation where a payment for a large order is made from multiple addresses, and how to track reconcile everything to fulfill an order.
My first approach would be to at the end of the checkout process:
1 - display total payable with wallet address
2 - ask customer provide one or more wallets where funds will come from to pay the order
In this case the checkout page would display the available balance in each one of the customer address and the system will link it all together then wait for the money to be transferred from these specific wallets, so we can know person A paid X amount for an item.
--- Now, this can get problematic. People can make a mistake and overpay, or still pay partially.
Maybe @SebastienGllmt has a better approach to handle this sort of situation, and make it easier for us to to link one or more specific payments to a given address, and identify what wallet was used to pay for a given item, and ensure that the payment was fulfilled so that an item can be sent.
Would be great to be able to start a local blockchain for test purposes. Not sure how easy or hard that would be. But the goal is to enable unit or integration tests to run against with a few "real" wallets with some funds available on this test blockchain. If possible everything will run locally. The closer it can get to how in-memory databases work, the better (setup itself automatically, run tests, destroy itself, recreate everything again, run other tests, destroy again, and so on)
So shops will have to provide their public root key to the app (how, I'm not sure, issue #6 aims to address that part). From there, whenever a new order is created from that shop, its key will be used to generate a unique payment address that will be associated with that particular order.
What we need now is a method that given the public root key, produces a receiving address.
If anyone can help out that would be great. Just submit a PR with a simple java class with a main method that I can execute by itself, and then I'll refactor it to make it work with the rest of the code.
I have the impression we'll need to use something like cardano-cli
which must be available to the server, and then invoke it with a ProcessBuilder
or even Runtime.exec
to call a shell script.
If that's the case the only thing I'll need is the sequence of commands to invoke the cardano-cli
(if this is the right tool to use), provide the public root key to that and get a new payment address from it - if it can dump 1000 addresses to a text file I can load when needed that would be pretty perfect.
Need a Java function that, given a wallet address as a plain String
, generates the corresponding QR code so that users can easily scan it and make payments from their mobile devices.
This will execute on the server side and the QR code and wallet address will be sent in the order confirmation e-mails requesting payment of all online purchases.
When the app is ready to be listed, we'd have to provide the following images in the application process:
An app icon (.jpg or .png, 1200px by 1200px), which must follow these guidelines
An app banner (.jpg or .png, 1600px by 900px), which also has its own guidelines
If there's any designer willing to contribute to this project please submit your design. If there's multiple suggestion we'll ask the community to vote on the best one to use. If there's no suggestions I'll have to ramp up my mspaint skills.
A wallet provides multiple receiving addresses. Would be great to be able to have a step by step guide for store owners on how to copy-and-paste part of list of possible receiving addresses. If that is not possible I'll build a desktop tool to generate the shop wallet, give the seed phrase to the shop owner so it can be restored in his preferred wallet, then upload the public root key to their shopify store.
Each receiving address could be bound to a different order in shopify to make identification of orders fast and easy. Consumer A pays to receiving address 1, consumer B pays to receiving address 2, etc.
It doesn't look like we can inject any sort of metadata in the blockchain so the consumer wallet can tell "payment for order number 12345" and I'm trying to be as less hacky as possible to properly assign payments from n
wallets to a destination address.
Need a java method that will receive a token symbol (currently only ADA) and a given target currency (USD, EUR, GBP), then return the current price of 1 ADA against 1 USD, EUR, GBP, etc.
One can easily query this using Binance for example, through the binance-java-api. The initial implementation can poll a single exchange but we must have multiple sources of truth here (so taking that from coinbase and other exchanges is a must).
This will be used so that the store owner can list the price of something like a shoe in USD, and the app will automatically update the price of that shoe in the website to display the ADA price (or in the future, the price of other tokens that run on the blockchain).
Need a javascript function that, given a wallet address as a plain String
, generates the corresponding QR code so that users can easily scan it and make payments from their mobile devices.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.