user6641: I have a website and I am considering supporting bitcoins, but I would like to do this without asking the users to log in nor give me their email or details before buying.
Is there a way to accept bitcoin payments and verify the identity of the people who paid without asking for any other information?
I would like the buyers to claim their product after they pay, using the transaction id, the confirmation number, the address... or something like this, so I do not have to ask for any other information before they buy, but I can be sure that I deliver the product to the right person.
That is, you can pay directly using my btc address (that will be different for each transaction) and you do not have to enter anything else. 
After the transaction is confirmed, you can come back to the website and you can claim the product entering a "code". (Only then you'll be asked for the email or more details).
Can I use the pair of transaction addresses as this code? Is this secret or other people will be able to claim they paid?
Thank you very much!!

user6679: If for some reason you don't want to create multiple bitcoin addresses*, you can use this arrangement:

Customer is given your single bitcoin address and a unique invoice number. The invoice number doesn't have to be secret just unique.
Customer is required to pay from a bitcoin address they have the private key for. Until they pay they don't have to tell anyone what this bitcoin address will be.
Once you have received and verified the payment, you record the bitcoin address it came from.
Customer picks up the purchase (or triggers physical delivery) by signing their invoice number with their private key. You verify the signature with their public key and send the delivery.
You can then delete the customer record from the database if you wish (and if legally permitted).

You should warn the customer that a purchase will not be delivered without a signed invoice number; and if automatic refunds occur for this service the refund will be to the address it came from - which may not be their specific logical wallet if they used an aggregate service provider or clearing house (the money becomes lost).
* Maybe to avoid transaction fees for aggregating payments, or you have a favorite wallet service, or you have a joint account with a company partner.

user6773: I made something exactly like what you need with sample code to be used with electrum bitcoin client. check it here. https://bitcointalk.org/index.php?topic=220494.0
I have been busy to develop it further but eventually I will get to it ^_^.
Enjoy and please share feedback.

user4708: The best way is to generate a new bitcoin address for each order.  When the customer wants to check out, you display this address to the customer.  You also store this address in your database, associated with this particular order.  Once you see (by checking the blockchain) that the proper payment amount has been made to this address, and after waiting for however many confirmations you are comfortable with (usually 6) you should ship the product.
If you use an integrated payment system like bitpay, all this should be taken care of for you.

user6734: You could have the customer send a message signed with the Bitcoin address used. This can be done with most Bitcoin clients or with most of the online wallets. This proves they have access to the private key for that address and are the owner. 
Where they send the email from is not important as long as you can verify the message. 
https://blockchain.info/wallet/features

Sign Message - Sign a message to prove you own a bitcoin adddress.

https://bitcoinarmory.com/start-page/what-is-armory/features/

Message signing with your Bitcoin addresses:   sign messages using the private keys of your bitcoin addresses, that can then be verified by someone else.  For instance, you pay someone 200 BTC for merchandise to be shipped to you.  You send the seller your postal address, but someone intercepts the message and replaces it with their own address!  This is avoidable by using signed messages:  the seller sees the money came from address X, so you send them a signature block, which tells them your postal address, and sign it with address X.  If someone tries to change the address, the signature will become invalid!


6641: <p>I have a website and I am considering supporting bitcoins, but I would like to do this without asking the users to log in nor give me their email or details before buying.</p>

<p>Is there a way to accept bitcoin payments and verify the identity of the people who paid without asking for any other information?</p>

<p>I would like the buyers to claim their product after they pay, using the transaction id, the confirmation number, the address... or something like this, so I do not have to ask for any other information before they buy, but I can be sure that I deliver the product to the right person.</p>

<p>That is, you can pay directly using my btc address (that will be different for each transaction) and you do not have to enter anything else. 
After the transaction is confirmed, you can come back to the website and you can claim the product entering a "code". (Only then you'll be asked for the email or more details).</p>

<p>Can I use the pair of transaction addresses as this code? Is this secret or other people will be able to claim they paid?</p>

<p>Thank you very much!!</p>
 6679: <p>If for some reason you don't want to create multiple bitcoin addresses*, you can use this arrangement:</p>

<ul>
<li>Customer is given your single bitcoin address and a unique invoice number. The invoice number doesn't have to be secret just unique.</li>
<li>Customer is required to pay from a bitcoin address <em>they have the private key for</em>. Until they pay they don't have to tell anyone what this bitcoin address will be.</li>
<li>Once you have received and verified the payment, you record the bitcoin address it came from.</li>
<li>Customer picks up the purchase (or triggers physical delivery) by signing their invoice number with their private key. You verify the signature with their public key and send the delivery.</li>
<li>You can then delete the customer record from the database if you wish <sup>(and if legally permitted)</sup>.</li>
</ul>

<p>You should warn the customer that a purchase will not be delivered without a signed invoice number; and if automatic refunds occur for this service the refund will be to the address it came from - which may not be <em>their</em> specific logical wallet if they used an aggregate service provider or clearing house (the money becomes <a href="http://www.sec.gov/answers/escheat.htm" rel="nofollow">lost</a>).</p>

<p><sub>* Maybe to avoid transaction fees for aggregating payments, or you have a favorite wallet service, or you have a joint account with a company partner.</sub></p>
 6773: <p>I made something exactly like what you need with sample code to be used with electrum bitcoin client. check it here. <a href="https://bitcointalk.org/index.php?topic=220494.0" rel="nofollow">https://bitcointalk.org/index.php?topic=220494.0</a></p>

<p>I have been busy to develop it further but eventually I will get to it ^_^.</p>

<p>Enjoy and please share feedback.</p>
 4708: <p>The best way is to generate a new bitcoin address for each order.  When the customer wants to check out, you display this address to the customer.  You also store this address in your database, associated with this particular order.  Once you see (by checking the blockchain) that the proper payment amount has been made to this address, and after waiting for however many confirmations you are comfortable with (usually 6) you should ship the product.</p>

<p>If you use an integrated payment system like bitpay, all this should be taken care of for you.</p>
 6734: <p>You could have the customer send a message signed with the Bitcoin address used. This can be done with most Bitcoin clients or with most of the online wallets. This proves they have access to the private key for that address and are the owner. </p>

<p>Where they send the email from is not important as long as you can verify the message. </p>

<p><a href="https://blockchain.info/wallet/features">https://blockchain.info/wallet/features</a></p>

<blockquote>
  <p>Sign Message - Sign a message to prove you own a bitcoin adddress.</p>
</blockquote>

<p><a href="https://bitcoinarmory.com/start-page/what-is-armory/features/">https://bitcoinarmory.com/start-page/what-is-armory/features/</a></p>

<blockquote>
  <p>Message signing with your Bitcoin addresses:   sign messages using the private keys of your bitcoin addresses, that can then be verified by someone else.  For instance, you pay someone 200 BTC for merchandise to be shipped to you.  You send the seller your postal address, but someone intercepts the message and replaces it with their own address!  This is avoidable by using signed messages:  the seller sees the money came from address X, so you send them a signature block, which tells them your postal address, and sign it with address X.  If someone tries to change the address, the signature will become invalid!</p>
</blockquote>
