added endpoint to receive payment data and update it

This commit is contained in:
olegphenomenon 2022-01-14 14:52:35 +02:00
parent df48b2137b
commit 005a888f50
2 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,52 @@
module EisBilling
class PaymentStatusController < ApplicationController
skip_authorization_check # Temporary solution
skip_before_action :verify_authenticity_token # Temporary solution
TYPE = "PaymentOrders::EveryPay".freeze
def update
invoice_number = params[:order_reference]
paid_at = params[:transaction_time]
sum = params[:standing_amount]
everypay_response = params
payment_status = nil
if PaymentOrders::EveryPay::SUCCESSFUL_PAYMENT.include? params[:payment_state]
payment_status = :paid
elsif params[:payment_state] == 'failed'
payment_status = :failed
end
invoice = Invoice.find_by(number: invoice_number)
bank = BankTransaction.new
bank.description = invoice.order
bank.reference_no = invoice.reference_no
bank.currency = invoice.currency
bank.iban = invoice.seller_iban
bank.sum = sum
bank.paid_at = paid_at
bank.buyer_name = invoice.buyer_name
bank.save
p "++++ BANK TRANSACTION ERRORS ? ++++"
p bank.errors
payment = PaymentOrder.new
payment.type = TYPE
payment.invoice = invoice
payment.response = everypay_response
payment.status = payment_status
payment.save
p "++++ PAYMENT ORDER ERRORS ? ++++"
p bank.errors
registrar = Registrar.find_by(reference_no: params[:reference_number])
bank.create_activity(registrar, invoice)
render status: 200, json: { status: 'ok' }
end
end
end