Bitcoin Forum

Economy => Services => Topic started by: nmteaco on July 30, 2012, 11:03:07 PM



Title: Bitfloor (or other client) transaction ID.
Post by: nmteaco on July 30, 2012, 11:03:07 PM
I am currently working on implementing bitcoin into my shopping cart.

My thought is to use bitfloor as my wallet. When someone checks out they will select bitcoin and I will show them my wallet ID. I would also like to have a field in there where they can post their "transaction id" so that I can match it up in my bitfloor account so I know they paid.

Is this possible? Its been a long time since I have used bitcoin, and I cant remember if there is a number that you get when you send bitcoins, a receipt if you will.

If that is not possible, would you suggest I have them paste in their wallet ID that they sent the money from? surly bitfloor shows the wallet ID of the sender.

Thanks for your imput!

-David


Title: Re: Bitfloor (or other client) transaction ID.
Post by: TangibleCryptography on July 30, 2012, 11:07:03 PM
Simple version is no that won't work.

Easily cheated and scammed plus some users have no idea what ADDRESS they are sending funds from.

Most merchants use a UNIQUE ADDRESS for each sale.


Title: Re: Bitfloor (or other client) transaction ID.
Post by: nmteaco on July 30, 2012, 11:13:43 PM
Simple version is no that won't work.

Easily cheated and scammed plus some users have no idea what ADDRESS they are sending funds from.

Most merchants use a UNIQUE ADDRESS for each sale.


How could it be cheated? just knowing someones wallet id does not mean you can take money out right? Its only an address for sending money to?


Title: Re: Bitfloor (or other client) transaction ID.
Post by: BCB on July 30, 2012, 11:14:48 PM
This may give you some insight.

http://bitcoinmedia.com/merchant-developer-tutorial/



Title: Re: Bitfloor (or other client) transaction ID.
Post by: TangibleCryptography on July 30, 2012, 11:56:38 PM
How could it be cheated? just knowing someones wallet id does not mean you can take money out right? Its only an address for sending money to?

First there is no such thing as a wallet ID.  A wallet is merely a random collection of addresses.  If you give the same address to more than one users that can be used by an attacker to impersonate another user.

Bob orders 123.456 BTC worth of goods and sends it to your static address.   Eve (attacker) notices on the blockchain an order of 123.456 BTC worth of goods so she creates an order with the same total and pretends to be Bob.  You ship goods to Eve but she never paid anything.  That is just one example of an attack there are numerous other ones.  It is trivially easy to impersonate another user if you are trying to use the sending address or amount as "verification".    That information is public anyone with access to the blockchain can see it.

The simple and foolproof solution is to use a UNIQUE SINGLE USER (never ever repeated under any circumstances) for each order (paid or otherwise).  When funds are sent to address 123456 you can determine which order you gave that address out to and mark it paid.  Since address 123456 will never be used on any other order there is no chance of confusion or attack.

Trying to come up with any other "scheme" is a good way to be defrauded or have an attacker steal from your customers (who correctly will blame you for using an insecure system).



Title: Re: Bitfloor (or other client) transaction ID.
Post by: nmteaco on July 31, 2012, 12:00:37 AM
I do not have the technical skill to implement a randomly generated bitcoin wallet.

Everyone in this thread:
https://bitcointalk.org/index.php?topic=95940.new;topicseen

Is trying to convince me to start to take bitcoins again. I thought I had a solution figured out, but it looks like it wont work.



Title: Re: Bitfloor (or other client) transaction ID.
Post by: TangibleCryptography on July 31, 2012, 12:04:01 AM
Then I would recommend using one of the service providers who will handle all of that for you.


Title: Re: Bitfloor (or other client) transaction ID.
Post by: nmteaco on July 31, 2012, 12:05:17 AM
Then I would recommend using one of the service providers who will handle all of that for you.

None of them support my shopping cart.


Title: Re: Bitfloor (or other client) transaction ID.
Post by: jwzguy on July 31, 2012, 12:06:11 AM
David, your solution may still work. You just need to run a local client and generate a new address for each transaction yourself. Then send your bitcoins on to bitfloor when you are ready to sell.

Also, check the other thread. Another user has reported that Paysius ( https://paysius.com/ ) wrote a plugin for his shopping cart software on request. They have a cheaper cashout fee (1.49%) and if they write a plugin for 3dcart, you won't have to mess with any of this yourself.



Title: Re: Bitfloor (or other client) transaction ID.
Post by: ChrisKoss on July 31, 2012, 01:14:36 AM
One low-tech solution that you might be able to implement is to make a field when checking out that says "Sending Address". The user could put in the address they intend to send the funds from, and this will allow you to receive all funds to a single address and still know who sent what.

The only problem with this is some wallets don't support selecting an output address.  If you do this, you might put a warning, "Make sure that you are sending from the Sending Address you filled out in the checkout process or we won't be able to associate your payment with your order."


Title: Re: Bitfloor (or other client) transaction ID.
Post by: BCB on July 31, 2012, 01:16:26 AM
What is your shopping cart?


Title: Re: Bitfloor (or other client) transaction ID.
Post by: nmteaco on July 31, 2012, 01:19:17 AM
One low-tech solution that you might be able to implement is to make a field when checking out that says "Sending Address". The user could put in the address they intend to send the funds from, and this will allow you to receive all funds to a single address and still know who sent what.

The only problem with this is some wallets don't support selecting an output address.  If you do this, you might put a warning, "Make sure that you are sending from the Sending Address you filled out in the checkout process or we won't be able to associate your payment with your order."

Perfect... I will implement this now and test it out.


Title: Re: Bitfloor (or other client) transaction ID.
Post by: TangibleCryptography on July 31, 2012, 01:23:47 AM
The only problem with this is some almost no wallets support selecting an output address.    If you do this, you might put a warning, "Make sure that you are sending from the Sending Address you filled out in the checkout process or we won't be able to associate your payment with your order." get ready for confused users, invalid entries, and making it impossible for users of most exchanges and clients to ever purchase anything.

This is very bad advice.  First I fixed your post.

The two most common "clients" The satoshi client and MtGox exchange (yes a lot of users use it as a wallet) don't support this.

Second this is not standard bitcoin "protocol" (I don't mean technical protocol I mean how users have been conditioned it works).  So you likely are going to get a huge number of wrong entries.  User is confused and contacts support, user is confused and enters a random address from his wallet, user is confused and clicks new address and enters that, user is confused and puts the MtGox deposit address, user is confused and puts his instawallet address (funds will come from another address).

The Bitcoin protocol wasn't designed to work that way.  For every valid traceable order the merchant is going to end up with multiple invalid, or unverifiable orders.  There are existing solutions.  Trying to make up a poorly implemented one is just going to end badly.



Title: Re: Bitfloor (or other client) transaction ID.
Post by: ErebusBat on July 31, 2012, 07:56:42 PM
Use bitaddress.org to generate a batch then hand them out....  You can redeem them as needed.  If your volume is enough then you can pay to make it more automated.


Title: Re: Bitfloor (or other client) transaction ID.
Post by: BCB on July 31, 2012, 08:25:48 PM
use the mtgox api to generate BTC prices based on the USD price.

Use the the blockchain.info api (in beta) t linked to a blockchain.info account to automatically generate  a unique bitcoin addresses  labeled with your unique order number for each bitcoin purchaser.

then before you ship you check your blockchain.info account for the order number, amount sent and number of confirmations (you could also do this programatically with the api as well).


Title: Re: Bitfloor (or other client) transaction ID.
Post by: ErebusBat on July 31, 2012, 08:34:54 PM
Or use bitpay.


Title: Re: Bitfloor (or other client) transaction ID.
Post by: BCB on July 31, 2012, 08:36:36 PM
isn't there a wiki page some where with all the bitcoin ecommerce tools available?


Title: Re: Bitfloor (or other client) transaction ID.
Post by: nmteaco on August 02, 2012, 06:10:59 PM
I appreciate everyone's input on this... However I do not have the technical skill to work with an API.

Bitpay and the like do not have plugins for 3dcart (the cart I use). However I think I developed a solution that will work until a plugin is developed.



Title: Re: Bitfloor (or other client) transaction ID.
Post by: jwzguy on August 02, 2012, 06:17:16 PM
I appreciate everyone's input on this... However I do not have the technical skill to work with an API.

Bitpay and the like do not have plugins for 3dcart (the cart I use). However I think I developed a solution that will work until a plugin is developed.
David, I don't mean to beat this into the ground, but it seems like you haven't read any of my responses about this.

Paysius wrote a custom plugin for a shopping cart system they didn't currently support on request from a customer.

Why not contact them and see if they will write one for you?


Title: Re: Bitfloor (or other client) transaction ID.
Post by: nmteaco on August 02, 2012, 06:22:03 PM
I have registered for their service, I will contact them... but I was trying to get something that works now, so people could at least check out.

I would guess even if they agree to write a plugin for free (Bitpay wants $600), its not going to be done this afternoon! ;)



Title: Re: Bitfloor (or other client) transaction ID.
Post by: jwzguy on August 02, 2012, 06:27:42 PM
I have registered for their service, I will contact them... but I was trying to get something that works now, so people could at least check out.

I would guess even if they agree to write a plugin for free (Bitpay wants $600), its not going to be done this afternoon! ;)



Cool, I just wanted to make sure this option didn't get lost in the mix. Paysius seems like they are hungry to compete. Their fee is much lower and they did this for another customer. Maybe they will solve all your problems.

The more businesses that start adding Bitcoin payment options, the more competition there will be among merchant services, and the cheaper it will be for merchants.

Hopefully one day your distributor will accept Bitcoin and then you won't need any middleman!