Bitcoin Forum
November 15, 2018, 09:34:46 AM *
News: Latest Bitcoin Core release: 0.17.0 [Torrent].
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Cashier-BTC: Process Bitcoin payments on your end, paying zero commissions  (Read 231 times)
overtorment2
Newbie
*
Offline Offline

Activity: 29
Merit: 1


View Profile
November 27, 2017, 09:56:09 PM
 #1

Hi all!
A couple of years ago I was really unhappy with Bitpay, so I coded a universal solution to accept Bitcoin on any website: https://github.com/Overtorment/Cashier-BTC

It is opensource and being used in several companies around the world now (no big names here, afaik). Recently I got tired of high fees and low Segwit adoption and rewrote it completely to support Segwit (P2SH addresses for now, bech32-ready; will be pushed to production, Im waiting for the spec to be formally approved and stripped of 'draft' status). Also, it relies on the one and only Bitcoin Core, so it is completely independent from 3rd parties (and using it helps strengthen the network!)

It does require basic web-development and linux skills to install and use this, but overall it is simple.

If you're unhappy with Bitpay (or any other bitcoin processor), want to enjoy Segwit and low fees, don't want to pay any cut to middlemen - I encourage you to try Cashier-BTC. It's opensource and free.

I also provide free support if you are having any issues, just let me know, would be happy to help. Spreading the word would also help increase merchant adoption!


https://github.com/Overtorment/Cashier-BTC
1542274486
Hero Member
*
Offline Offline

Posts: 1542274486

View Profile Personal Message (Offline)

Ignore
1542274486
Reply with quote  #2

1542274486
Report to moderator
1542274486
Hero Member
*
Offline Offline

Posts: 1542274486

View Profile Personal Message (Offline)

Ignore
1542274486
Reply with quote  #2

1542274486
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1542274486
Hero Member
*
Offline Offline

Posts: 1542274486

View Profile Personal Message (Offline)

Ignore
1542274486
Reply with quote  #2

1542274486
Report to moderator
overtorment2
Newbie
*
Offline Offline

Activity: 29
Merit: 1


View Profile
December 03, 2017, 10:39:46 PM
 #2

up
btc_enigma
Hero Member
*****
Offline Offline

Activity: 631
Merit: 501


View Profile
December 06, 2017, 10:10:51 AM
 #3

Very good job. I am tweeting this out ! Feel to checkout blockonomics  (we have plugins for various platform). Payments go directly to wallet and full segwit support !

overtorment2
Newbie
*
Offline Offline

Activity: 29
Merit: 1


View Profile
March 11, 2018, 03:31:55 PM
 #4

Added TESTNET support
ketominer
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 23, 2018, 09:17:05 AM
 #5

Hi,

First of all, thank you for your excellent work. I was looking for a full-node based self-hosted payment solution for several of my companies and it fits perfectly.

I'm testing it since yesterday but I'm running into a few minor issues :

  • I made small payments to test (0.0001 BTC) which seem to be equal to the fee to transfer to the merchant account, so I'm getting stuck in a loop of
Code:
worker2.js address: XXX expect: 0.0001 confirmed: 0.0001 unconfirmed: 0.0001
worker2.js transferring 0.0001 BTC (minus fee) from XXX to seller XXX ( XXX )
worker2.js broadcasting XXX

  • Is there a way to cleanup old payment requests ? I have a few of those looping in the logs of worker.js
Code:
worker.js address: XXX expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXY expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXZ expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXW expect: 0.001 confirmed: 0 unconfirmed: 0
  • I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log

Don't hesitate to ask me for more info Smiley
overtorment2
Newbie
*
Offline Offline

Activity: 29
Merit: 1


View Profile
May 23, 2018, 10:47:14 AM
 #6

Hi,

First of all, thank you for your excellent work. I was looking for a full-node based self-hosted payment solution for several of my companies and it fits perfectly.

I'm testing it since yesterday but I'm running into a few minor issues :

  • I made small payments to test (0.0001 BTC) which seem to be equal to the fee to transfer to the merchant account, so I'm getting stuck in a loop of
Code:
worker2.js address: XXX expect: 0.0001 confirmed: 0.0001 unconfirmed: 0.0001
worker2.js transferring 0.0001 BTC (minus fee) from XXX to seller XXX ( XXX )
worker2.js broadcasting XXX

  • Is there a way to cleanup old payment requests ? I have a few of those looping in the logs of worker.js
Code:
worker.js address: XXX expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXY expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXZ expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXW expect: 0.001 confirmed: 0 unconfirmed: 0
  • I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log

Don't hesitate to ask me for more info Smiley



Hey!
Super small payments are kind of an issue. The fee to aggregate payments is hardcoded here
https://github.com/Overtorment/Cashier-BTC/blob/f0fb18c8186f87373c267b1a7e7b42daedb6449d/worker2.js#L54
I suggest you change it to a smaller amount (it's currently 0.0001) or deal with such payments manually (the WIF for the hot address is in the database).


Old requests are being re-checked for 24 hours. That's configurable in config https://github.com/Overtorment/Cashier-BTC/blob/master/config.js.dev
You can lower that to your taste, but everything works okay with the way it is.
If you really want to cleanup old requests, you need to write a small script for that, but that's not a very good idea. Occasionally clients
might be paying to some old addresses.

The third question I didn't quite understand.
Probably the payment requests are old enough (>24h) to be ignored by worker.
You can always check out whats wrong with the payment request right in the database.


ketominer
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 23, 2018, 11:34:22 AM
 #7



    • I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log

    Don't hesitate to ask me for more info Smiley


    The third question I didn't quite understand.
    Probably the payment requests are old enough (>24h) to be ignored by worker.
    You can always check out whats wrong with the payment request right in the database.


    Thank you for your reply! I'll look into the first two items right now.

    About the third one, I have 2 payments of 0.0004 which are received (this morning) :
    [/list]
    Code:
     [
        [
          "XXY",
          0.00040000,
          "XXY"
        ]
      ],
      [
        [
          "XXX",
          0.00040000,
          "XXX"
        ]
      ]

    and confirmed (more than 20 confirmations now) but they are not getting transferred to the seller account.

    In the database, the paid_on, processed and so on fields are missing. I also don't see those transactions in the worker.js logs.

    After looking closer, I found this:
    Code:
    (node:4415) UnhandledPromiseRejectionWarning: Error: {"result":null,"error":{"code":-4,"message":"Address not found in wallet"},"id":"4faa6833-856e-48b0-afa9-42fe75e8675a"}

        at IncomingMessage.<anonymous> (/home/cashier/Cashier-BTC/node_modules/jayson/lib/client/http.js:74:21)
        at emitNone (events.js:111:20)
        at IncomingMessage.emit (events.js:208:7)
        at endReadableNT (_stream_readable.js:1064:12)
        at _combinedTickCallback (internal/process/next_tick.js:138:11)
        at process._tickCallback (internal/process/next_tick.js:180:9)
    (node:4415) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

    I guess I have some address in the database which wasn't created in the bitcoind itself?

    EDIT : found the issue, I had some left over data from "npm test" in my database Smiley
    ketominer
    Newbie
    *
    Offline Offline

    Activity: 4
    Merit: 0


    View Profile
    May 23, 2018, 01:41:06 PM
     #8

    OK another stupid question, because I'm not sure I totally get what's in the README...

    After creating a seller, if I remove his WIF and replace the pubkey with a cold storage address, it will never be overwritten?
    overtorment2
    Newbie
    *
    Offline Offline

    Activity: 29
    Merit: 1


    View Profile
    May 23, 2018, 04:00:09 PM
     #9

    OK another stupid question, because I'm not sure I totally get what's in the README...

    After creating a seller, if I remove his WIF and replace the pubkey with a cold storage address, it will never be overwritten?

    Happy to help!

    Absolutely, once the database record for seller exists - it is never overwritten.

    ketominer
    Newbie
    *
    Offline Offline

    Activity: 4
    Merit: 0


    View Profile
    May 23, 2018, 04:49:40 PM
     #10

    OK another stupid question, because I'm not sure I totally get what's in the README...

    After creating a seller, if I remove his WIF and replace the pubkey with a cold storage address, it will never be overwritten?

    Happy to help!

    Absolutely, once the database record for seller exists - it is never overwritten.



    Cool! Thanks a lot
    Pages: [1]
      Print  
     
    Jump to:  

    Sponsored by , a Bitcoin-accepting VPN.
    Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!