Bitcoin Forum
November 14, 2024, 07:59:43 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: ¿Cual es la mejor forma de aceptar bitcoins en una tienda física?  (Read 3270 times)
Krako (OP)
Sr. Member
****
Offline Offline

Activity: 407
Merit: 250



View Profile
April 27, 2013, 07:27:12 AM
 #1

Bueno, la pregunta es clara.

¿Cual creeis que es la mejor forma de aceptar btc en una tienda física disponiendo de conexion a internet un PC y varias dependientas que nunca han oido hablar de bitcoin?

Espero vuestras ideas

Saludos
rme
Hero Member
*****
Offline Offline

Activity: 756
Merit: 504



View Profile
April 27, 2013, 07:32:11 AM
 #2

Dependientas con tablets o smartphones con pantalla grande y el cliente escanea un código qr y paga.
Se puede usar Bitpay.

Mira este video:
https://www.youtube.com/watch?v=jCYE4V6C8a8
KEMP RASS
Full Member
***
Offline Offline

Activity: 126
Merit: 101


View Profile
April 27, 2013, 09:25:32 AM
 #3

Bitpay o http://www.pagobit.com/ que es la alternativa española,o tambien,aceptar los pagos a tu cartera de blockchain mediante su app de iphone te puede ser util.Una vez empieces a aceptar los pagos,notificalo y se te incluirá en http://www.bitcoinespaña.es/empresascastellano.html
Krako (OP)
Sr. Member
****
Offline Offline

Activity: 407
Merit: 250



View Profile
April 27, 2013, 01:04:27 PM
Last edit: January 31, 2014, 02:05:41 AM by Krako
 #4

Esas plataformas de pago cobran... y mira ya que estamos con BTC no tengo ganas de pagar comisiones. Tongue

Voy a implementar un sistema de pago propio con la API de blockchain.

Sería algo así: una página alojada en el servidor de mi tienda online que mi dependienta carga con la tablet y muestra un formulario donde la dependienta mete el importe en euros y el nº de ticket.

Esa página llama al script de pago en el mismo servidor donde convierte los € a BTC automáticamente y muestra el cógido QR junto con el importe para que el cliente lo escanee con su movil.

Ya lo tengo casi, la verdad es que es más facil de lo que parece.

OS pongo lo que he hecho hasta ahora a ver que os parece.cuando el cliente realiza el pago con su movil la página se refresca mostrando el resultado de la transaccion.:  Smiley




Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
April 27, 2013, 01:18:16 PM
Last edit: January 31, 2014, 05:12:54 PM by Shawshank
 #5

Esas plataformas de pago cobran... y mira ya que estamos con BTC no tengo ganas de pagar comisiones. Tongue

Voy a implementar un sistema de pago propio con la API de blockchain.

Sería algo así: una página alojada en el servidor de mi tienda online que mi dependienta carga con la tablet y muestra un formulario donde la dependienta mete el importe en euros y el nº de ticket.

Esa página llama al script de pago en el mismo servidor donde convierte los € a BTC automáticamente y muestra el cógido QR junto con el importe para que el cliente lo escanee con su movil.

Ya lo tengo casi, la verdad es que es más facil de lo que parece.

OS pongo lo que he hecho hasta ahora a ver que os parece.cuando el cliente realiza el pago con su movil la página se refresca mostrando el resultado de la transaccion.:  Smiley


Está genial. Sencillo y funcional. Como a mí me gusta.

Lightning Address: shawshank@getalby.com
LuisCar
Legendary
*
Offline Offline

Activity: 1820
Merit: 1017



View Profile
April 27, 2013, 02:15:55 PM
 #6

En la prueba que yo he hecho, el código QR solamente se corresponde con la dirección de pago, sería muy interesante que éste incluyera también el importe en bitcoins de modo que el comprador no tenga que introducir la cantidad de bitcoins a pagar manualmente.

yacare
Hero Member
*****
Offline Offline

Activity: 1260
Merit: 500


In CryptoEnergy we trust


View Profile
April 27, 2013, 09:22:19 PM
 #7

Muy bueno.

Yo pensaba hacer algo similar en perl.

Generas un nuevo address para cada ticket? (eso pensaba hacer yo)
Es relativamente sencillo de implementar, y no tenemos que andar pagando comisiones Smiley

Krako (OP)
Sr. Member
****
Offline Offline

Activity: 407
Merit: 250



View Profile
April 27, 2013, 09:51:52 PM
 #8

En la prueba que yo he hecho, el código QR solamente se corresponde con la dirección de pago, sería muy interesante que éste incluyera también el importe en bitcoins de modo que el comprador no tenga que introducir la cantidad de bitcoins a pagar manualmente.

Ahí me has dado, estaba pensando lo mismo y de hecho iba a preguntar si alguien sabía como se hace... Eso sería percecto ya que 8 decimales a mano se puede prestar a errores.

Yacare, si se genera una nueva dirección por cada venta.

Una variación de este sistema la estoy usando para los pagos online en los que se solicita el pago por email una vez hecha factura y comprobado que esta todo el pedido disponible.
LuisCar
Legendary
*
Offline Offline

Activity: 1820
Merit: 1017



View Profile
April 27, 2013, 10:32:51 PM
Last edit: April 28, 2013, 10:27:14 AM by LuisCar
 #9

En el cliente Bitcoin-Qt tienes una opción para recibir pagos [Recibir monedas > Seleccionas una dirección de pago > Mostrar código QR] ―hablo de la versión v0.8.1.0― que te muestra el código QR de la dirección bitcoin. Allí tienes una casilla llamada "Solicitud de pago" que si la activas puedes introducir el importe (y si quieres una etiqueta también) y que te genera el código QR correspondiente junto con la salida en texto plano del mismo.

Las salidas tienen esta estructura:

Code:
bitcoin:1B4e2ZJmRSxDZXQmKN8CqEjxUyvC7AtgGz?amount=0.25
bitcoin:1B4e2ZJmRSxDZXQmKN8CqEjxUyvC7AtgGz?amount=0.25&label=PerfumeX

Tienes un ejemplo sin etiqueta y con ella (aunque en las pruebas que he hecho con el monedero de blockchain en el móvil, éste ignora la etiqueta). De modo que solamente deberías tener que pasarle una cadena de texto de ese tipo a un generador de códigos QR para que produzca uno con esa estructura, de forma tal que los monederos de pago de bitcoin en móviles reconocerán y completarán todos los campos de la ventana de pago sin que el cliente tenga que hacer nada más que aceptar la transacción.

Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
April 28, 2013, 06:24:50 AM
 #10

Las salidas tienen esta estructura:

Code:
bitcoin:1B4e2ZJmRSxDZXQmKN8CqEjxUyvC7AtgGz?amount=0.25
bitcoin:1B4e2ZJmRSxDZXQmKN8CqEjxUyvC7AtgGz?amount=0.25&label=PerfumeX

En el URI scheme de IANA para Bitcoin se indica que también se puede utilizar el atributo message:

http://www.iana.org/assignments/uri-schemes/prov/bitcoin

Lightning Address: shawshank@getalby.com
Krako (OP)
Sr. Member
****
Offline Offline

Activity: 407
Merit: 250



View Profile
April 28, 2013, 07:46:07 AM
 #11

Tengo que investigar a ver como se genera la imagen, me he basado en el ejemplo de la sección de desarrolladores de blockchain http://blockchain.info/es/api/api_receive y me da la sensación de que el código se genera en el servidor de Blockchain. Lo miraré a ver si se puede construir el qr de esa manera, cualquier ayuda es bienvenida.

Saludos
KEMP RASS
Full Member
***
Offline Offline

Activity: 126
Merit: 101


View Profile
April 28, 2013, 10:01:04 AM
 #12

Luiscar,no tendras tu una guia a fondo de todas las opciones del cliente original de bitcoin y posibilidades totales?
LuisCar
Legendary
*
Offline Offline

Activity: 1820
Merit: 1017



View Profile
April 28, 2013, 10:39:35 AM
Last edit: April 28, 2013, 10:53:41 AM by LuisCar
 #13

Pues no, pero claro tenemos la ayuda del programa que nos aporta la siguiente información:

Code:
Bitcoin-Qt versión v0.8.1.0-g34d62a8-beta

Uso:
  bitcoin-qt [opciones de la línea de órdenes]


Opciones:

  -?                     Este mensaje de ayuda

  -conf=<file>           Especificar archivo de configuración (predeterminado: bitcoin.conf)

  -pid=<file>            Especificar archivo pid (predeterminado: bitcoin.pid)

  -gen                   Generar monedas
  -gen=0                 No generar monedas
  -datadir=<dir>         Especificar directorio para los datos
  -dbcache=<n>           Establecer el tamaño de caché de la base de datos en megabytes (predeterminado: 25)
  -timeout=<n>           Especificar el tiempo máximo de conexión en milisegundos (predeterminado: 5000)
  -proxy=<ip:port>       Conectar mediante proxy socks
  -socks=<n>             Elija la versión del proxy socks a usar (4-5, predetermiando: 5)
  -tor=<ip:port>         Utilizar proxy para conectar a servicios ocultos (predeterminado: igual que -proxy)
  -dns                   Permitir búsquedas DNS para -addnode, -seednode y -connect
  -port=<port>           Escuchar conexiones en <puerto> (predeterminado: 8333 o testnet: 18333)
  -maxconnections=<n>    Mantener como máximo <n> conexiones a pares (predeterminado: 125)
  -addnode=<ip>          Añadir un nodo al que conectarse y tratar de mantener la conexión abierta
  -connect=<ip>          Conectar sólo a los nodos (o nodo) especificados
  -seednode=<ip>         Conectar a un nodo para obtener direcciones de pares y desconectar
  -externalip=<ip>       Especifique su propia dirección pública
  -onlynet=<net>         Conectarse solo a nodos de la red <net> (IPv4, IPv6 o Tor)
  -discover              Descubrir dirección IP propia (predeterminado: 1 al escuchar sin -externalip)
  -irc                   Encontrar los pares utilizando Internet Relay Chat (predeterminado: 0)
  -checkpoints           Aceptar solamente cadena de bloques que concuerde con los puntos de control internos (predeterminado: 1)
  -listen                Aceptar conexiones desde el exterior (predeterminado: 1 si no -proxy o -connect)
  -bind=<addr>           Vincular a la dirección dada y escuchar siempre en ella. Utilice la notación [host]:port para IPv6
  -dnsseed               Encontrar pares mediante búsqueda de DNS (predeterminado: 1 salvo con -connect)
  -banscore=<n>          Umbral para la desconexión de pares con mal comportamiento (predeterminado: 100)
  -bantime=<n>           Número de segundos en que se evita la reconexión de pares con mal comportamiento (predeterminado: 86400)
  -maxreceivebuffer=<n>  Búfer de recepción máximo por conexión, <n>*1000 bytes (predeterminado: 5000)
  -maxsendbuffer=<n>     Búfer de recepción máximo por conexión, , <n>*1000 bytes (predeterminado: 1000)
  -upnp                  Usar UPnP para asignar el puerto de escucha (predeterminado: 1 al escuchar)
  -paytxfee=<amt>        Tarifa por KB que añadir a las transacciones que envíe
  -server                Aceptar comandos consola y JSON-RPC

  -testnet               Usar la red de pruebas

  -debug                 Mostrar información de depuración adicional. Abarca todas las demás opciones -debug*
  -debugnet              Mostrar información de depuración adicional
  -logtimestamps         Anteponer marca temporal a la información de depuración
  -shrinkdebugfile       Reducir el archivo debug.log al iniciar el cliente (predeterminado: 1 sin -debug)
  -printtoconsole        Enviar información de trazas/depuración a la consola en lugar de al archivo debug.log
  -rpcuser=<user>        Nombre de usuario para las conexiones JSON-RPC

  -rpcpassword=<pw>      Contraseña para las conexiones JSON-RPC

  -rpcport=<port>        Escuchar conexiones JSON-RPC en <puerto> (predeterminado: 8332 o testnet:18332)
  -rpcallowip=<ip>       Permitir conexiones JSON-RPC desde la dirección IP especificada

  -rpcconnect=<ip>       Enviar comando al nodo situado en <ip> (predeterminado: 127.0.0.1)

  -blocknotify=<cmd>     Ejecutar un comando cuando cambia el mejor bloque (%s en cmd se sustituye por el hash de bloque)
  -upgradewallet         Actualizar el monedero al último formato
  -keypool=<n>           Ajustar el número de claves en reserva <n> (predeterminado: 100)

  -rescan                Volver a examinar la cadena de bloques en busca de transacciones del monedero perdidas
  -salvagewallet         Intento de recuperar claves privadas de un wallet.dat corrupto
  -checkblocks=<n>       How many blocks to check at startup (default: 288, 0 = all)
  -checklevel=<n>        Como es de exhaustiva la verificació de bloques (0-4, por defecto 3)
  -txindex               Maintain a full transaction index (default: 0)
  -loadblock=<file>      Importa los bloques desde un archivo blk000??.dat externo
  -reindex               Reconstruir el índice de la cadena de bloques a partir de los archivos blk000??.dat actuales
  -par=N                 Set the number of script verification threads (1-16, 0=auto, default: 0)

Opciones de creación de bloques:
  -blockminsize=<n>      Establecer tamaño mínimo de bloque en bytes (predeterminado: 0)
  -blockmaxsize=<n>      Establecer tamaño máximo de bloque en bytes (predeterminado: 250000)
  -blockprioritysize=<n> Establecer el tamaño máximo de las transacciones de alta prioridad/comisión baja en bytes (predeterminado:27000)

Opciones SSL: (ver la Bitcoin Wiki para instrucciones de configuración SSL)
  -rpcssl                                  Usar OpenSSL (https) para las conexiones JSON-RPC

  -rpcsslcertificatechainfile=<file.cert>  Certificado del servidor (predeterminado: server.cert)

  -rpcsslprivatekeyfile=<file.pem>         Clave privada del servidor (predeterminado: server.pem)

  -rpcsslciphers=<ciphers>                 Cifrados aceptados (predeterminado: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)


Opciones GUI:
  -lang=<lang>           Establecer el idioma, por ejemplo, "es_ES" (predeterminado: configuración regional del sistema)
  -min                   Arrancar minimizado
  -splash                Mostrar pantalla de bienvenida en el inicio (predeterminado: 1)


Mientras que los operadores de la consola son:

Code:
Bienvenido a la consola RPC de Bitcoin
Use las flechas arriba y abajo para navegar por el historial y Control+L para limpiar la pantalla.
Escriba help para ver un resumen de los comandos disponibles.

help

addmultisigaddress <nrequired> <'["key","key"]'> [account]
addnode <node> <add|remove|onetry>
backupwallet <destination>
createmultisig <nrequired> <'["key","key"]'>
createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...}
decoderawtransaction <hex string>
dumpprivkey <bitcoinaddress>
getaccount <bitcoinaddress>
getaccountaddress <account>
getaddednodeinfo <dns> [node]
getaddressesbyaccount <account>
getbalance [account] [minconf=1]
getblock <hash>
getblockcount
getblockhash <index>
getblocktemplate [params]
getconnectioncount
getdifficulty
getgenerate
gethashespersec
getinfo
getmininginfo
getnewaddress [account]
getpeerinfo
getrawmempool
getrawtransaction <txid> [verbose=0]
getreceivedbyaccount <account> [minconf=1]
getreceivedbyaddress <bitcoinaddress> [minconf=1]
gettransaction <txid>
gettxout <txid> <n> [includemempool=true]
gettxoutsetinfo
getwork [data]
help [command]
importprivkey <bitcoinprivkey> [label] [rescan=true]
keypoolrefill
listaccounts [minconf=1]
listaddressgroupings
listlockunspent
listreceivedbyaccount [minconf=1] [includeempty=false]
listreceivedbyaddress [minconf=1] [includeempty=false]
listsinceblock [blockhash] [target-confirmations]
listtransactions [account] [count=10] [from=0]
listunspent [minconf=1] [maxconf=9999999] ["address",...]
lockunspent unlock? [array-of-Objects]
move <fromaccount> <toaccount> <amount> [minconf=1] [comment]
sendfrom <fromaccount> <tobitcoinaddress> <amount> [minconf=1] [comment] [comment-to]
sendmany <fromaccount> {address:amount,...} [minconf=1] [comment]
sendrawtransaction <hex string>
sendtoaddress <bitcoinaddress> <amount> [comment] [comment-to]
setaccount <bitcoinaddress> <account>
setgenerate <generate> [genproclimit]
settxfee <amount>
signmessage <bitcoinaddress> <message>
signrawtransaction <hex string> [{"txid":txid,"vout":n,"scriptPubKey":hex,"redeemScript":hex},...] [<privatekey1>,...] [sighashtype="ALL"]
stop
submitblock <hex data> [optional-params-obj]
validateaddress <bitcoinaddress>
verifymessage <bitcoinaddress> <signature> <message>
walletlock
walletpassphrase <passphrase> <timeout>
walletpassphrasechange <oldpassphrase> <newpassphrase>

Si lo que buscas es una guía de uso básica en español con capturas de las acciones para que sirva de guía en comercios que quieren comenzar aceptar bitcoins, habría que currársela. Aunque pienso que el cliente Qt no es el más indicado para un negocio. Éstos necesitan un sistema que les proporcione automáticamente una nueva dirección de pago para cada venta con el fin de mantener la privacidad sobre su volumen de facturación por lo que se necesitaría utilizar un cliente que tire de carteras deteminísticas para tener siempre el control de la generación de todas las claves privadas correspondientes y con el wallet funcionando en modo desconectado (en bitcoin no necesitas devolver cambios por lo que los dependientes no tendrían que tocar el monedero).

LuisCar
Legendary
*
Offline Offline

Activity: 1820
Merit: 1017



View Profile
April 28, 2013, 10:55:15 AM
 #14

En el URI scheme de IANA para Bitcoin se indica que también se puede utilizar el atributo message:

http://www.iana.org/assignments/uri-schemes/prov/bitcoin

Buen detalle.

Twerka
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
April 29, 2013, 05:42:38 AM
 #15

Te felicito, primero por aceptar bitcoin en tu comercio. Segundo por no querer dejarte estafar por terceros que cobran por servicios innecesarios.

El cliente de Bitcoin te permite completamente aceptar los pagos.

The worst enemy of Bitcoin is Mt.Gox exchange.
sysmenet
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile WWW
May 22, 2013, 08:23:07 AM
 #16

Bueno, nosotros ya estamos en desarrollo y pruebas para que nuestro software Tpv conecte con el cliente bitcoin, genere una nueva dirección para cada pago con su etiqueta e importe, y muestre en pantalla y/o imprima un ticket con el código QR (depende de si el empleado dispone de móvil/tablet o no). Y luego, claro, comprobar si la transacción se ha recibido y número de confirmaciones.

Ahora tenemos que buscar la mejor forma de obtener en tiempo real el cambio de moneda, puesto que, lógicamente los comercios compran la mercancía en euros y/o dolares y por tanto no deben poner precios fijos en bitcoins, por tanto, o bien en cada transacción o bien cada X minutos tendremos que comprobar el cambio actual.

A ver si esta actualización anima a la multitud de comercios que usan nuestro software tpv a operar y aceptar el bitcoin en sus puntos de venta físicos, sería un gran paso adelante.

PD: si alguien sabe cual es el servicio-API más fiable para obtener el cambio en tiempo real se lo agradecería.
Tximino Art
Newbie
*
Offline Offline

Activity: 33
Merit: 0



View Profile
May 22, 2013, 09:16:58 AM
 #17

La tienda con la tablet utilizando Bitpay o mostrando el código QR de su monedero lo entiendo, pero ¿que aplicación utiliza el cliente en el móvil? Cuál recomendais?
sysmenet
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile WWW
May 22, 2013, 09:23:57 AM
 #18

La tienda con la tablet utilizando Bitpay o mostrando el código QR de su monedero lo entiendo, pero ¿que aplicación utiliza el cliente en el móvil? Cuál recomendais?

Hombre, el cliente elegirá la aplicación que le de la gana no? ahí no tienes nada que hacer, digo yo.
Tximino Art
Newbie
*
Offline Offline

Activity: 33
Merit: 0



View Profile
May 22, 2013, 09:27:24 AM
 #19

OK, me refiero a cuál utilizais vosotros  Cheesy Cuál recomendais para tener en el movil.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
May 22, 2013, 11:10:39 AM
 #20

Tengo que investigar a ver como se genera la imagen, me he basado en el ejemplo de la sección de desarrolladores de blockchain http://blockchain.info/es/api/api_receive y me da la sensación de que el código se genera en el servidor de Blockchain. Lo miraré a ver si se puede construir el qr de esa manera, cualquier ayuda es bienvenida.

Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!