mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-13 22:54:25 +01:00
Working on token billing
This commit is contained in:
parent
583a92d5bc
commit
5dc0fcca0d
@ -72,17 +72,17 @@ class UpdatePaymentRequest extends Request
|
|||||||
unset($input['amount']);
|
unset($input['amount']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($input['type_id'])) {
|
// if (isset($input['type_id'])) {
|
||||||
unset($input['type_id']);
|
// unset($input['type_id']);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (isset($input['date'])) {
|
// if (isset($input['date'])) {
|
||||||
unset($input['date']);
|
// unset($input['date']);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (isset($input['transaction_reference'])) {
|
// if (isset($input['transaction_reference'])) {
|
||||||
unset($input['transaction_reference']);
|
// unset($input['transaction_reference']);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (isset($input['number'])) {
|
if (isset($input['number'])) {
|
||||||
unset($input['number']);
|
unset($input['number']);
|
||||||
|
@ -254,7 +254,6 @@ class CompanyGateway extends BaseModel
|
|||||||
$fee += $pre_tax_fee * $this->fee_tax_rate2 / 100;
|
$fee += $pre_tax_fee * $this->fee_tax_rate2 / 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $fee;
|
return $fee;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,6 +102,18 @@ class AuthorizeCreditCard
|
|||||||
|
|
||||||
private function tokenBilling($cgt, $amount, $invoice)
|
private function tokenBilling($cgt, $amount, $invoice)
|
||||||
{
|
{
|
||||||
|
$data = (new ChargePaymentProfile($this->authorize))->chargeCustomerProfile($cgt->gateway_customer_reference, $cgt->token, $amounts);
|
||||||
|
|
||||||
|
if($data['response'] != null && $data['response']->getMessages()->getResultCode() == "Ok") {
|
||||||
|
|
||||||
|
$payment = $this->createPaymentRecord($data, $amount);
|
||||||
|
|
||||||
|
$this->authorize->attachInvoices($payment, $invoice->hashed_id);
|
||||||
|
//up to here
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,10 +127,11 @@ class AuthorizeCreditCard
|
|||||||
return $this->processFailedResponse($data, $request);
|
return $this->processFailedResponse($data, $request);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function processSuccessfulResponse($data, $request)
|
private function createPaymentRecord($data, $amount) :?Payment
|
||||||
{
|
{
|
||||||
|
|
||||||
$response = $data['response'];
|
$response = $data['response'];
|
||||||
//create a payment record and fire notifications and then return
|
//create a payment record
|
||||||
|
|
||||||
$payment = PaymentFactory::create($this->authorize->client->company_id, $this->authorize->client->user_id);
|
$payment = PaymentFactory::create($this->authorize->client->company_id, $this->authorize->client->user_id);
|
||||||
$payment->client_id = $this->authorize->client->id;
|
$payment->client_id = $this->authorize->client->id;
|
||||||
@ -129,11 +142,18 @@ class AuthorizeCreditCard
|
|||||||
$payment->currency_id = $this->authorize->client->getSetting('currency_id');
|
$payment->currency_id = $this->authorize->client->getSetting('currency_id');
|
||||||
$payment->date = Carbon::now();
|
$payment->date = Carbon::now();
|
||||||
$payment->transaction_reference = $response->getTransactionResponse()->getTransId();
|
$payment->transaction_reference = $response->getTransactionResponse()->getTransId();
|
||||||
$payment->amount = $request->input('amount_with_fee');
|
$payment->amount = $amount;
|
||||||
$payment->currency_id = $this->authorize->client->getSetting('currency_id');
|
$payment->currency_id = $this->authorize->client->getSetting('currency_id');
|
||||||
$payment->client->getNextPaymentNumber($this->authorize->client);
|
$payment->client->getNextPaymentNumber($this->authorize->client);
|
||||||
$payment->save();
|
$payment->save();
|
||||||
|
|
||||||
|
return $payment;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function processSuccessfulResponse($data, $request)
|
||||||
|
{
|
||||||
|
$payment = $this->createPaymentRecord($data, $request->input('amount_with_fee'));
|
||||||
|
|
||||||
$this->authorize->attachInvoices($payment, $request->hashed_ids);
|
$this->authorize->attachInvoices($payment, $request->hashed_ids);
|
||||||
|
|
||||||
$payment->service()->updateInvoicePayment();
|
$payment->service()->updateInvoicePayment();
|
||||||
|
@ -59,10 +59,11 @@ class AutoBillInvoice extends AbstractService
|
|||||||
$amount = $this->invoice->balance + $fee;
|
$amount = $this->invoice->balance + $fee;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Make sure we remove any stale fees*/
|
||||||
|
$this->purgeStaleGatewayFees();
|
||||||
|
|
||||||
if($fee > 0)
|
if($fee > 0)
|
||||||
$this->purgeStaleGatewayFees()->addFeeToInvoice($fee);
|
$this->addFeeToInvoice($fee);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$response = $gateway_token->gateway->driver($this->client)->tokenBilling($gateway_token, $amount, $this->invoice);
|
$response = $gateway_token->gateway->driver($this->client)->tokenBilling($gateway_token, $amount, $this->invoice);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user