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());
|
nlog($r->body());
|
||||||
|
|
||||||
if($r->failed())
|
if ($r->failed()) {
|
||||||
$r->throw();
|
return $this->processUnsuccessfulPayment($r);
|
||||||
|
}
|
||||||
|
|
||||||
$charge = $r->json();
|
$charge = $r->json();
|
||||||
nlog($charge['resource']['data']);
|
nlog($charge['resource']['data']);
|
||||||
@ -165,6 +166,8 @@ class CreditCard implements LivewireMethodInterface
|
|||||||
public function paymentResponse(PaymentResponseRequest $request)
|
public function paymentResponse(PaymentResponseRequest $request)
|
||||||
{
|
{
|
||||||
nlog($request->all());
|
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->data = array_merge((array) $this->powerboard->payment_hash->data, ['response' => $request->all()]);
|
||||||
$this->powerboard->payment_hash->save();
|
$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, []);
|
$r = $this->powerboard->gatewayRequest("/v1/charges", (\App\Enum\HttpVerb::POST)->value, $payload, []);
|
||||||
|
|
||||||
if($r->failed())
|
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();
|
$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);
|
$this->powerboard->logSuccessfulGatewayResponse(['response' => $charge, 'data' => $this->powerboard->payment_hash], SystemLog::TYPE_POWERBOARD);
|
||||||
|
|
||||||
$vt = $charge->customer->payment_source->vault_token;
|
$vt = $charge->customer->payment_source->vault_token;
|
||||||
// nlog($this->powerboard->payment_hash->data);
|
|
||||||
|
|
||||||
// $vt = $r->object()->resource->data->_3ds->id;
|
|
||||||
|
|
||||||
if($request->store_card){
|
if($request->store_card){
|
||||||
$data = [
|
$data = [
|
||||||
@ -283,8 +283,19 @@ class CreditCard implements LivewireMethodInterface
|
|||||||
return redirect()->route('client.payments.show', ['payment' => $payment->hashed_id]);
|
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);
|
// $this->stripe->sendFailureMail($server_response->cancellation_reason);
|
||||||
|
|
||||||
// $message = [
|
// $message = [
|
||||||
|
@ -22,7 +22,9 @@ return new class extends Migration
|
|||||||
$fields->secretKey = '';
|
$fields->secretKey = '';
|
||||||
// $fields->applicationId = '';
|
// $fields->applicationId = '';
|
||||||
// $fields->locationId = '';
|
// $fields->locationId = '';
|
||||||
|
|
||||||
$fields->testMode = false;
|
$fields->testMode = false;
|
||||||
|
$fields->Threeds = false;
|
||||||
|
|
||||||
$powerboard = new Gateway();
|
$powerboard = new Gateway();
|
||||||
$powerboard->id = 64;
|
$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' => 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' => 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' => 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) {
|
foreach ($gateways as $gateway) {
|
||||||
|
@ -265,16 +265,21 @@
|
|||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
"X-Requested-With": "XMLHttpRequest",
|
"X-Requested-With": "XMLHttpRequest",
|
||||||
|
"Accept": 'application/json',
|
||||||
"X-CSRF-Token": document.querySelector('meta[name="csrf-token"]').content
|
"X-CSRF-Token": document.querySelector('meta[name="csrf-token"]').content
|
||||||
},
|
},
|
||||||
body: formData
|
body: formData
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
|
||||||
if (!response.ok) {
|
return await response.json().then(errorData => {
|
||||||
const text = await response.text();
|
throw new Error(errorData.message ?? 'Unknown error.');
|
||||||
throw new Error(`Network response was not ok: ${response.statusText}. Response text: ${text}`);
|
});
|
||||||
}
|
|
||||||
|
// const text = await response.text();
|
||||||
|
// throw new Error(`Network response was not ok: ${response.statusText}. Response text: ${text}`);
|
||||||
|
}
|
||||||
|
|
||||||
return await response.json()
|
return await response.json()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user