From 997fecb1270487bdbe6c9f9dc52c1abd9d6d3c1b Mon Sep 17 00:00:00 2001 From: Imre Nagi Date: Thu, 28 May 2020 20:39:11 +0700 Subject: [PATCH] Enable credit card xendit Signed-off-by: Imre Nagi --- README.md | 2 +- gateway/xendit/credit_card.go | 24 ++++++++++++++++++++++++ gateway/xendit/facade.go | 2 ++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gateway/xendit/credit_card.go diff --git a/README.md b/README.md index b682c4a..9d33f2d 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ This tables shows which payment channels that has been implemented by this proxy | Channels | Midtrans | Xendit | | ------------------------------- | ----------------------------------- | ------------------------ | -| Credit Card without installment | :white_check_mark: | :heavy_exclamation_mark: | +| Credit Card without installment | :white_check_mark: | :white_check_mark: | | Credit Card with installment | :white_check_mark: | :x: | | BCA VA | :white_check_mark: | :white_check_mark: | | Mandiri VA | :white_check_mark: | :white_check_mark: | diff --git a/gateway/xendit/credit_card.go b/gateway/xendit/credit_card.go new file mode 100644 index 0000000..a8bc4b7 --- /dev/null +++ b/gateway/xendit/credit_card.go @@ -0,0 +1,24 @@ +package xendit + +import ( + xinvoice "github.com/xendit/xendit-go/invoice" +) + +func NewCreditCardInvoice(rb *InvoiceRequestBuilder) (*CreditCardInvoice, error) { + return &CreditCardInvoice{ + rb: rb, + }, nil +} + +type CreditCardInvoice struct { + rb *InvoiceRequestBuilder +} + +func (o *CreditCardInvoice) Build() (*xinvoice.CreateParams, error) { + o.rb.AddPaymentMethod("CREDIT_CARD") + req, err := o.rb.Build() + if err != nil { + return nil, err + } + return req, nil +} diff --git a/gateway/xendit/facade.go b/gateway/xendit/facade.go index cddfb0f..a94d017 100644 --- a/gateway/xendit/facade.go +++ b/gateway/xendit/facade.go @@ -51,6 +51,8 @@ func NewInvoiceRequestFromInvoice(inv *invoice.Invoice) (*xinvoice.CreateParams, reqBuilder, err = NewPermataVAInvoice(req) case payment.SourceMandiriVA: reqBuilder, err = NewMandiriVAInvoice(req) + case payment.SourceCreditCard: + reqBuilder, err = NewCreditCardInvoice(req) } if err != nil { return nil, err