I am currently running this package
"btcpayserver/btcpayserver-greenfield-php": "^2.8"
I keep getting this error:
Error during POST to . Got response (401): {"code":"unauthenticated","message":"Authentication is required for accessing this endpoint"}
Warning: Array to string conversion in D:\xampp\htdocs\my_app\path to file.php on line 79
Array
When I run this code shown below and I don't see the array to string conversion is coming from:
use BTCPayServer\Client\Invoice;
use BTCPayServer\Client\InvoiceCheckoutOptions;
use BTCPayServer\Util\PreciseNumber;
public function createInvoice($amount, $orderId, $buyerEmail)
{
// Create a basic invoice.
try {
$client = new Invoice($this->host, $this->apiKey);
$result =
$client->createInvoice(
$this->storeId,
$this->currency,
PreciseNumber::parseString($amount),
$orderId,
$buyerEmail
);
return $result;
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
echo $e->getTrace();
}
}
Implementation:
require_once "vendor/autoload.php";
use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
$ObjBtcServer = new \MyApp\CryptoDepositClasses\BTCPayServerClass();
print_r($ObjBtcServer->createInvoice(amount: '600', orderId: "#303", buyerEmail: '[email protected]'));
Can anyone help me with this please?
I got the Store ID from the dashboard and also the API but it's still not authenticating.
I am currently running this package
"btcpayserver/btcpayserver-greenfield-php": "^2.8"
I keep getting this error:
Error during POST to https://mainnet.demo.btcpayserver.org/api/v1/stores/__STORE_ID/invoices. Got response (401): {"code":"unauthenticated","message":"Authentication is required for accessing this endpoint"}
Warning: Array to string conversion in D:\xampp\htdocs\my_app\path to file.php on line 79
Array
When I run this code shown below and I don't see the array to string conversion is coming from:
use BTCPayServer\Client\Invoice;
use BTCPayServer\Client\InvoiceCheckoutOptions;
use BTCPayServer\Util\PreciseNumber;
public function createInvoice($amount, $orderId, $buyerEmail)
{
// Create a basic invoice.
try {
$client = new Invoice($this->host, $this->apiKey);
$result =
$client->createInvoice(
$this->storeId,
$this->currency,
PreciseNumber::parseString($amount),
$orderId,
$buyerEmail
);
return $result;
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
echo $e->getTrace();
}
}
Implementation:
require_once "vendor/autoload.php";
use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
$ObjBtcServer = new \MyApp\CryptoDepositClasses\BTCPayServerClass();
print_r($ObjBtcServer->createInvoice(amount: '600', orderId: "#303", buyerEmail: '[email protected]'));
Can anyone help me with this please?
I got the Store ID from the dashboard and also the API but it's still not authenticating.
It seems the solution was to wait for like 24 hours for the option to show because I did not see it at first until the next day. The previous API i was using was fromt he store level
i located it on the menu Account > API Keys > Generate Key and give it the appropriate authorisation level you want to give it
Now the code works fine, and the array-to-string conversion was coming from the way I was printing the result from the request; I was supposed to call it like this:
$result = new Invoice(..., ...);
$result->getData(): // fix here