Coinbase Commerce Integration

Coinbase Commerce Integration [Paid] 1.0.2

No permission to buy (£25.00)
Tried to reinstalled but get duplicated. Also that when removed the add-on, the payment profile option is still there.
Code:
XF\Db\DuplicateKeyException: MySQL query error [1062]: Duplicate entry 'ncp_coinbase_commerce' for key 'PRIMARY' in src/XF/Db/AbstractStatement.php at line 212
XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 196
XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 77
XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 79
XF\Db\AbstractAdapter->query() in src/XF/Db/AbstractAdapter.php at line 160
XF\Db\AbstractAdapter->insert() in src/addons/nanocode/CryptoPayments/Setup.php at line 19
nanocode\CryptoPayments\Setup->installStep1() in src/XF/AddOn/StepRunnerInstallTrait.php at line 60
nanocode\CryptoPayments\Setup->installStepRunner() in src/XF/AddOn/StepRunnerInstallTrait.php at line 27
nanocode\CryptoPayments\Setup->install() in src/XF/Admin/Controller/AddOn.php at line 393
XF\Admin\Controller\AddOn->actionInstall() in src/XF/Mvc/Dispatcher.php at line 249
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 88
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 41
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 1934
XF\App->run() in src/XF.php at line 333
XF::runApp() in admin.php at line 13
 
Tried to reinstalled but get duplicated. Also that when removed the add-on, the payment profile option is still there.
There's no drop clause for that entry (a bug in the released version). For the time being, you should remove the entry in xf_payment_provider (the one with the ID ncp_coinbase_commerce) after deleting any related payment profiles. Apologies for this, will be fixed in a future version.
 
@Robust,
You have already answered me, but look, pls, at https://gourl.io one more time :) Fast, simple and secure payment gateway.
It's working good for wordpress https://wordpress.org/plugins/gourl-bitcoin-payment-gateway-paid-downloads-membership/

bitcoinbox3.png


they're on bitcointalk https://bitcointalk.org/index.php?action=profile;u=508064


If/when gourl.io or blockonomics is added I will buy this add on immediately. Currently what we are doing is user pc a mod stating which upgrade would like to purchase, mod then sends user a link to blockonomics btc invoice. Once transaction is confirmed we manually upgrade the user. Of course this system is not preferable for users or mod staff, but is the best we've come up with so far.

This add on could be the answer to all of our problems.
 
@Robust, @nanocode
Hi! When mod will be upgraded from beta to stable one? Maybe you'll add https://gourl.io and CoinPayments.net. I am looking forward foe this :)
gourl is cool. Personally I want to see it...
When we're confident it has no bugs and the main features are added it'll move into stable releases. Even in the current beta there are no known bugs. We plan to add CoinPayments.net in 0.2, and after testing on that version it should move into stable.
 
Will there be any updates? Is there a study on this right now? Or any date? :unsure:
gourl isn't planned. CoinPayments.net support is coded and just requires testing. Been a bit busy recently so I haven't been able to dedicate the proper time to testing this feature. Hoping to have it tested and released this weekend, hopefully. I don't really want to push out something I'm not confident with, or something that hasn't been fully tested.
 
Hi. Any news? When will be stable release? Devs, don't throw away this mod. Lets develop it together. Our thoughts and suggestions and your development :) There is no normal bitcoin gateway, so it's needed! ;)
 
Tried to reinstalled but get duplicated. Also that when removed the add-on, the payment profile option is still there.
Code:
XF\Db\DuplicateKeyException: MySQL query error [1062]: Duplicate entry 'ncp_coinbase_commerce' for key 'PRIMARY' in src/XF/Db/AbstractStatement.php at line 212
XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 196
XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 77
XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 79
XF\Db\AbstractAdapter->query() in src/XF/Db/AbstractAdapter.php at line 160
XF\Db\AbstractAdapter->insert() in src/addons/nanocode/CryptoPayments/Setup.php at line 19
nanocode\CryptoPayments\Setup->installStep1() in src/XF/AddOn/StepRunnerInstallTrait.php at line 60
nanocode\CryptoPayments\Setup->installStepRunner() in src/XF/AddOn/StepRunnerInstallTrait.php at line 27
nanocode\CryptoPayments\Setup->install() in src/XF/Admin/Controller/AddOn.php at line 393
XF\Admin\Controller\AddOn->actionInstall() in src/XF/Mvc/Dispatcher.php at line 249
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 88
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 41
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 1934
XF\App->run() in src/XF.php at line 333
XF::runApp() in admin.php at line 13

Got the same error, anyone knows a way how to fix it?
 
fixed the error but heres the next:
An exception occurred: [Error] Call to undefined function GuzzleHttp\json_decode() in src/addons/nanocode/CryptoPayments/Payment/CoinbaseCommerce.php on line 91 #0 src/XF/Pub/Controller/Purchase.php(30): nanocode\CryptoPayments\Payment\CoinbaseCommerce->initiatePayment(Object(XF\Pub\Controller\Purchase), Object(XF\Entity\PurchaseRequest), Object(XF\Purchasable\Purchase)) #1 src/XF/Mvc/Dispatcher.php(249): XF\Pub\Controller\Purchase->actionIndex(Object(XF\Mvc\ParameterBag)) #2 src/XF/Mvc/Dispatcher.php(88): XF\Mvc\Dispatcher->dispatchClass('XF:Purchase', 'Index', 'json', Object(XF\Mvc\ParameterBag), '', Object(XF\Pub\Controller\Purchase), NULL) #3 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch)) #4 src/XF/App.php(1931): XF\Mvc\Dispatcher->run() #5 src/XF.php(329): XF\App->run() #6 index.php(13): XF::runApp('XF\\Pub\\App') #7 {main}
 
Hi. Any news? When will be stable release? Devs, don't throw away this mod. Lets develop it together. Our thoughts and suggestions and your development :) There is no normal bitcoin gateway, so it's needed! ;)
@nanocode, @Robust, guys, any updates?
It's not abandoned and still maintained. It's in beta because we haven't had a chance to release the 0.2 version w/ CoinPayments.net support yet, which we want to do in the beta stages rather than after full release. We're aiming to do that ASAP.

There aren't any unfixed bugs in the add-on (at least, not that we're aware of - we've identified and resolved the 1 bug reported to us). If it has the features you need already then it would be fine to purchase it now.

Got the same error, anyone knows a way how to fix it?
fixed the error but heres the next:
An exception occurred: [Error] Call to undefined function GuzzleHttp\json_decode() in src/addons/nanocode/CryptoPayments/Payment/CoinbaseCommerce.php on line 91 #0 src/XF/Pub/Controller/Purchase.php(30): nanocode\CryptoPayments\Payment\CoinbaseCommerce->initiatePayment(Object(XF\Pub\Controller\Purchase), Object(XF\Entity\PurchaseRequest), Object(XF\Purchasable\Purchase)) #1 src/XF/Mvc/Dispatcher.php(249): XF\Pub\Controller\Purchase->actionIndex(Object(XF\Mvc\ParameterBag)) #2 src/XF/Mvc/Dispatcher.php(88): XF\Mvc\Dispatcher->dispatchClass('XF:purchase', 'Index', 'json', Object(XF\Mvc\ParameterBag), '', Object(XF\Pub\Controller\Purchase), NULL) #3 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch)) #4 src/XF/App.php(1931): XF\Mvc\Dispatcher->run() #5 src/XF.php(329): XF\App->run() #6 index.php(13): XF::runApp('XF\\Pub\\App') #7 {main}
Please open a support ticket here: https://nanocode.io/contact
 
Is it possible with this add-on to have a direct payment from wallet to wallet, without any third party involved?
 
Last edited:
Is it possible with this add-on to have a direct payment from wallet to wallet, without any third party involved?
That's not possible unfortunately. I'll elaborate slightly, since this request has been made a couple of times.

We'd have to support specific currencies to do that. The user would also have to host a node to track transactions on the blockchain, maintain their own copy of the blockchain, and handle all funds on their service. It's a rather significant amount of code, pretty impractical for most users (would require a VPS/dedicated server, and a bunch of hard drive space), hard to develop (we'd have to make a specific implementation for each coin we want to support, and have to ensure everything is secure), and there can still be hiccups since it wouldn't really be hosted on perfect infrastructure. It'd be pretty messy and a fair time investment for us which I doubt would be profitable.

The API solutions available to process cryptocurrency payments are, imho, very good for this purpose and we plan to use those to process the payments, and focus our efforts on adding good cryptocurrency payment processors rather than develop a payment processing solution of our own.
 
@Robust Thanks for reply.
And why would it have to be done such a complicated way? In order to send a bitcoin, I only need to know the address of the intended recipient's wallet. Do it the way as Check/Money Order. During the ordering process I will get the QR code of the recipient's wallet. And once the recipient's wallet gets the coin, then they can send the product. It is like paying with a wire transfer. During the checkout process I will get the account number were to send the payment. Once the payment is received, the store owner can send the product. Money Order is a stock feature in osCommerce, for example. Nothing hard to do.
Can you do it this way please?
 
Last edited:
@Robust Thanks for reply.
And why would it have to be done such a complicated way? In order to send a bitcoin, I only need to know the address of the intended recipient's wallet. Do it the way as Check/Money Order. During the ordering process I will get the QR code of the recipient's wallet. And once the recipient's wallet gets the coin, then they can send the product. It is like paying with a wire transfer. During the checkout process I will get the account number were to send the payment. Once the payment is received, the store owner can send the product. Money Order is a stock feature in osCommerce, for example. Nothing hard to do.
Can you do it this way please?
Sure. The complicated part is here:

And once the recipient's wallet gets the coin, then they can send the product.

You need to confirm that the coin has been received. You also don't want to use third parties and their APIs. Hence, to do this, you need to run a node, with a copy of the blockchain (very large), and develop a specific implementation for each coin (the nodes and protocols vary per coin, so the implementation for certain coins could be completely different, some coins have pretty unstable and unreliable node software). You then need to poll the receiving address for new transactions, maintaining a database of generated wallet addresses to receive each payment, polling each one for a specific period.

It is not as simple to do programmatically as it is manually using a client for the coin. I've only looked into this for a few cryptocurrencies, so some may make it slightly easier to work with, but the general principles are the same if you use the criteria of "no third parties".

There are bandwidth considerations, storage considerations and hosting type considerations to do this automatically.

As far as wire transfers go, those are generally processed (i.e. their status updated by the merchant) manually. There are some APIs (third parties) to automate this. Yodlee is one. They basically emulate online banking requests. Banks do not really have APIs to use for instant payment confirmation, so it's usually just a case of effectively scraping to automatically accept wire transfers.

it is easy to implement support for payment processors, such as PayPal, Stripe, Coinbase, CoinPayments.net, etc. because they do all the dirty work for you. You simply use an API they've made to communicate with them. If you want to process manually, you're effectively creating a payment processor - you need to implement the infrastructure to handle payments. Even if you loosen your requirements and use a Blockchain explorer (a third party, kinda beating the whole 'freedom' thing) to poll for receiving payments, you still need to handle generating payment addresses, moving crypto to a primary wallet, over/under payment, etc. And this effort has to be duplicated for every supported coin. For Bitcoin specifically, you can see some relevant sections here and here.

Even if all the effort is put in to code this, and the economical loss ignored, there's a bit of a grey area with the implementation. Your server will need to be pretty secure, holes in its security could result in loss of coin. A bug in this software, a bad incompatibility with another add-on or a poorly secured server could all result in loss of crypto. And that's not really a hassle worth dealing with, or a risk worth taking, for the developer or the forum admin. Not really a comfortable legal position to be in either.

Using an existing API solution for accepting Bitcoin, or any other cryptocurrency, is by far the best solution. When Steam used to accept Bitcoin, even they used Bitpay as their processor.
 
Top Bottom