Open hopeseekr opened 6 years ago
Mine too. This is really unprofessional!
I'm working on a v4 update, which resolves these issues.
Can you elaborate on this comment:
php-bitpay-client throws an Exception (on production) for mere Notices. This is a huge risk to end-clients. bitpay/php-client/src/Bitpay/Client/Client.php line"
Are you referring to the if (false !== $error_message)
line?
An error message in the BitPay response to create invoice always refers to a failure of invoice creation, so it's not a mere notice.
I've currently updated the lines to:
if (false !== $error_message) { throw new \Bitpay\Client\BitpayException($error_message); }
If you have other / better ideas, please let me know
I've already forked your project and I am working to resolve this on my end.
I incoricate you to definitely merge my upcoming PR(s).
The Problem
php-bitpay-client
throws an Exception (on production) for mere Notices. This is a huge risk to end-clients.bitpay/php-client/src/Bitpay/Client/Client.php
line[2018-03-31 02:11:53] production.ERROR: Could not generate a Bitpay Invoice:Undefined index: btcPrice
bitpay/php-client/src/Bitpay/Client/Client.php
.btcPrice
norbtcPaid
.The Solution
Ideally, bitpay's API wouldn't break backward compatibility, at least without notice.
Barring that, you must tweak the following code in
Client.php
:This will definitely throw exceptions on mere notices, due to any array element from the Bitpay API being different / missing from what you expect.
Next, you must not use the base
\Exception
for throwing any errors, anywhere in the library. It makes it well-nigh impossible for end-developers to adequately handle cases where your client isn't working correctly.My Workaround Hack
To save production, I had to manually edit
vendor/bitpay/php-client/src/Bitpay/Client/Client.php
and add the following lines increateInvoice()
: Above the$invoice->setToken()
on line 177:This is absolutely NOT ideal and I would greatly appreciate your assistance on properly rectifying this.