mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Exception handling
This commit is contained in:
parent
2e114692e7
commit
54afae4d8b
@ -153,8 +153,9 @@ class CreditCard implements LivewireMethodInterface
|
||||
|
||||
nlog($r->body());
|
||||
|
||||
if($r->failed())
|
||||
$r->throw();
|
||||
if ($r->failed()) {
|
||||
return $this->processUnsuccessfulPayment($r);
|
||||
}
|
||||
|
||||
$charge = $r->json();
|
||||
nlog($charge['resource']['data']);
|
||||
@ -165,6 +166,8 @@ class CreditCard implements LivewireMethodInterface
|
||||
public function paymentResponse(PaymentResponseRequest $request)
|
||||
{
|
||||
nlog($request->all());
|
||||
|
||||
$request->headers->set('Accept', 'application/json');
|
||||
$this->powerboard->payment_hash->data = array_merge((array) $this->powerboard->payment_hash->data, ['response' => $request->all()]);
|
||||
$this->powerboard->payment_hash->save();
|
||||
|
||||
@ -219,7 +222,7 @@ class CreditCard implements LivewireMethodInterface
|
||||
$r = $this->powerboard->gatewayRequest("/v1/charges", (\App\Enum\HttpVerb::POST)->value, $payload, []);
|
||||
|
||||
if($r->failed())
|
||||
$r->throw();
|
||||
return $this->processUnsuccessfulPayment($r);
|
||||
|
||||
$charge = (new \App\PaymentDrivers\CBAPowerBoard\Models\Parse())->encode(Charge::class, $r->object()->resource->data) ?? $r->throw();
|
||||
|
||||
@ -229,9 +232,6 @@ class CreditCard implements LivewireMethodInterface
|
||||
$this->powerboard->logSuccessfulGatewayResponse(['response' => $charge, 'data' => $this->powerboard->payment_hash], SystemLog::TYPE_POWERBOARD);
|
||||
|
||||
$vt = $charge->customer->payment_source->vault_token;
|
||||
// nlog($this->powerboard->payment_hash->data);
|
||||
|
||||
// $vt = $r->object()->resource->data->_3ds->id;
|
||||
|
||||
if($request->store_card){
|
||||
$data = [
|
||||
@ -283,8 +283,19 @@ class CreditCard implements LivewireMethodInterface
|
||||
return redirect()->route('client.payments.show', ['payment' => $payment->hashed_id]);
|
||||
}
|
||||
|
||||
public function processUnsuccessfulPayment($server_response)
|
||||
public function processUnsuccessfulPayment($response)
|
||||
{
|
||||
try{
|
||||
$response->throw();
|
||||
}
|
||||
catch(\Throwable $exception){
|
||||
$error_object = $exception->response->object();
|
||||
|
||||
nlog($error_object);
|
||||
return response()->json(['message' => $error_object->error->details->messages[0]->gateway_specific_code, 'code' => 400], 400);
|
||||
}
|
||||
|
||||
|
||||
// $this->stripe->sendFailureMail($server_response->cancellation_reason);
|
||||
|
||||
// $message = [
|
||||
|
@ -22,7 +22,9 @@ return new class extends Migration
|
||||
$fields->secretKey = '';
|
||||
// $fields->applicationId = '';
|
||||
// $fields->locationId = '';
|
||||
|
||||
$fields->testMode = false;
|
||||
$fields->Threeds = false;
|
||||
|
||||
$powerboard = new Gateway();
|
||||
$powerboard->id = 64;
|
||||
|
@ -89,7 +89,7 @@ class PaymentLibrariesSeeder extends Seeder
|
||||
['id' => 61, 'name' => 'PayPal Platform', 'provider' => 'PayPal_PPCP', 'key' => '80af24a6a691230bbec33e930ab40666', 'fields' => '{"testMode":false}'],
|
||||
['id' => 62, 'name' => 'BTCPay', 'provider' => 'BTCPay', 'key' => 'vpyfbmdrkqcicpkjqdusgjfluebftuva', 'fields' => '{"btcpayUrl":"", "apiKey":"", "storeId":"", "webhookSecret":""}'],
|
||||
['id' => 63, 'name' => 'Rotessa', 'is_offsite' => false, 'sort_order' => 22, 'provider' => 'Rotessa', 'key' => '91be24c7b792230bced33e930ac61676', 'fields' => '{"apiKey":"", "testMode":false}'],
|
||||
['id' => 64, 'name' => 'CBA PowerBoard', 'is_offsite' => false, 'sort_order' => 26, 'provider' => 'CBAPowerBoard', 'key' => 'b67581d804dbad1743b61c57285142ad', 'fields' => '{"publicKey":"", "secretKey":"", "testMode":false}'],
|
||||
['id' => 64, 'name' => 'CBA PowerBoard', 'is_offsite' => false, 'sort_order' => 26, 'provider' => 'CBAPowerBoard', 'key' => 'b67581d804dbad1743b61c57285142ad', 'fields' => '{"publicKey":"", "secretKey":"", "testMode":false, "Threeds":true}'],
|
||||
];
|
||||
|
||||
foreach ($gateways as $gateway) {
|
||||
|
@ -265,15 +265,20 @@
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"Accept": 'application/json',
|
||||
"X-CSRF-Token": document.querySelector('meta[name="csrf-token"]').content
|
||||
},
|
||||
body: formData
|
||||
})
|
||||
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
throw new Error(`Network response was not ok: ${response.statusText}. Response text: ${text}`);
|
||||
|
||||
return await response.json().then(errorData => {
|
||||
throw new Error(errorData.message ?? 'Unknown error.');
|
||||
});
|
||||
|
||||
// const text = await response.text();
|
||||
// throw new Error(`Network response was not ok: ${response.statusText}. Response text: ${text}`);
|
||||
}
|
||||
|
||||
return await response.json()
|
||||
|
Loading…
x
Reference in New Issue
Block a user