From 20d16516f0e318f8f1cea1d38ed1548381a27f96 Mon Sep 17 00:00:00 2001 From: Beran Santur Date: Mon, 19 Feb 2024 16:10:40 +0300 Subject: [PATCH 01/26] Fixed test error (#72) --- main_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main_test.go b/main_test.go index 88fe110..dd41479 100644 --- a/main_test.go +++ b/main_test.go @@ -25,7 +25,7 @@ func Test_main(t *testing.T) { binNumber, err := client.Installment.RetrieveBinNumber(context.Background(), "487074") require.NotNil(t, err) require.Nil(t, binNumber) - assert.Equal(t, true, strings.Contains(err.Error(), "API credential not found!")) + assert.Equal(t, true, strings.Contains(err.Error(), "API credential not found")) }) }) } From 8c3649bb96157de303610516285c44b2630fd945 Mon Sep 17 00:00:00 2001 From: Emre INAL <9061788+reywyn@users.noreply.github.com> Date: Mon, 19 Feb 2024 16:30:01 +0300 Subject: [PATCH 02/26] Update github build action (#73) --- .github/workflows/go.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 9d05c36..1f37b8e 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -7,20 +7,18 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - - name: Set up Go 1.19 - uses: actions/setup-go@v3 + - name: Set up Go + uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: '1.21.0' cache: true cache-dependency-path: go.sum - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Go Lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v4 - name: Get dependencies run: | From cf1f940fba9d922214bd91116f8cfe7bfafed61f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Derya=20=C3=87akmak?= <36774966+deryacakmak@users.noreply.github.com> Date: Tue, 19 Mar 2024 17:37:24 +0300 Subject: [PATCH 03/26] Garanti Bank account tracking (#70) * Garanti Bank account tracking * fix test --------- Co-authored-by: Lemi Orhan Ergin --- adapter/model.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adapter/model.go b/adapter/model.go index 1ee758f..24decf2 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -522,7 +522,8 @@ const ( // BankAccountTrackingSource declaration const ( - BankAccountTrackingSource_YKB BankAccountTrackingSource = "YKB" + BankAccountTrackingSource_YKB BankAccountTrackingSource = "YKB" + BankAccountTrackingSource_GARANTI BankAccountTrackingSource = "GARANTI" ) const ( From bfd8397c32b9418be3ec7408abd39775d66a71e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alican=20Akku=C5=9F?= Date: Wed, 20 Mar 2024 11:20:11 +0300 Subject: [PATCH 04/26] Add loyalty exists while searching installment (#77) --- adapter/model.go | 1 + 1 file changed, 1 insertion(+) diff --git a/adapter/model.go b/adapter/model.go index 24decf2..e902c03 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1298,6 +1298,7 @@ type SearchInstallmentsRequest struct { Price float64 `schema:"price"` Currency Currency `schema:"currency"` DistinctCardBrandsWithLowestCommissions bool `schema:"distinctCardBrandsWithLowestCommissions"` + LoyaltyExists bool `schema:"loyaltyExists"` } type InstallmentListResponse struct { From 7a45097a4ae98c6b642991143f0c591bed0cbd80 Mon Sep 17 00:00:00 2001 From: Beran Santur Date: Wed, 20 Mar 2024 13:44:01 +0300 Subject: [PATCH 05/26] Add version of search payout completed tx with pagination (#76) * Add version of search payout completed tx with pagination * Add version of search payout completed tx with pagination * Add version of search payout completed tx with pagination --- adapter/model.go | 2 ++ adapter/settlement_reporting.go | 2 +- tests/settlement_reporting_test.go | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/adapter/model.go b/adapter/model.go index e902c03..d16fad7 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1680,6 +1680,8 @@ type SearchPayoutCompletedTransactionsRequest struct { SettlementType SettlementType `schema:"settlementType,omitempty"` StartDate time.Time `schema:"startDate,omitempty"` EndDate time.Time `schema:"endDate,omitempty"` + Page int `schema:"page"` + Size int `schema:"size"` } type SearchPayoutBouncedTransactionsRequest struct { diff --git a/adapter/settlement_reporting.go b/adapter/settlement_reporting.go index 14b270c..5218f29 100644 --- a/adapter/settlement_reporting.go +++ b/adapter/settlement_reporting.go @@ -11,7 +11,7 @@ type SettlementReporting struct { } func (api *SettlementReporting) SearchPayoutCompletedTransactions(ctx context.Context, request SearchPayoutCompletedTransactionsRequest) (*DataResponse[SearchPayoutCompletedTransactionsResponse], error) { - newRequest, err := api.Client.NewRequest(ctx, http.MethodGet, "/settlement-reporting/v1/settlement-file/payout-completed-transactions", request) + newRequest, err := api.Client.NewRequest(ctx, http.MethodGet, "/settlement-reporting/v2/settlement-file/payout-completed-transactions", request) if err != nil { return nil, err } diff --git a/tests/settlement_reporting_test.go b/tests/settlement_reporting_test.go index d477e32..ef651fd 100644 --- a/tests/settlement_reporting_test.go +++ b/tests/settlement_reporting_test.go @@ -15,6 +15,8 @@ func TestSettlementReporting_SearchPayoutCompletedTransactions(t *testing.T) { request := adapter.SearchPayoutCompletedTransactionsRequest{ StartDate: time.Now().AddDate(0, 0, -180), EndDate: time.Now(), + Page: 0, + Size: 10, } res, err := settlementReportingClient.SettlementReporting.SearchPayoutCompletedTransactions(context.Background(), request) From ea59525c9c4265567e827cfd211939e37bf4e095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alican=20Akku=C5=9F?= Date: Wed, 20 Mar 2024 14:50:45 +0300 Subject: [PATCH 06/26] adds paycell as a new apm and provider type (#59) --- adapter/model.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index d16fad7..9a2966f 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -88,6 +88,7 @@ const ( ApmType_ALFABANK ApmType = "ALFABANK" ApmType_TOM_FINANCE ApmType = "TOM_FINANCE" ApmType_STRIPE ApmType = "STRIPE" + ApmType_PAYCELL ApmType = "PAYCELL" ApmType_HASO ApmType = "HASO" ApmType_FUND_TRANSFER ApmType = "FUND_TRANSFER" ApmType_CASH_ON_DELIVERY ApmType = "CASH_ON_DELIVERY" @@ -108,12 +109,16 @@ const ( PaymentProvider_PAYPAL PaymentProvider = "PAYPAL" PaymentProvider_KLARNA PaymentProvider = "KLARNA" PaymentProvider_AFTERPAY PaymentProvider = "AFTERPAY" - PaymentProvider_KASPI PaymentProvider = "KASPI" - PaymentProvider_TOMPAY PaymentProvider = "TOMPAY" PaymentProvider_APPLEPAY PaymentProvider = "APPLEPAY" PaymentProvider_GOOGLEPAY PaymentProvider = "GOOGLEPAY" PaymentProvider_HEPSIPAY PaymentProvider = "HEPSIPAY" PaymentProvider_STRIPE PaymentProvider = "STRIPE" + PaymentProvider_KASPI PaymentProvider = "KASPI" + PaymentProvider_MASLAK PaymentProvider = "MASLAK" + PaymentProvider_TOMPAY PaymentProvider = "TOMPAY" + PaymentProvider_TOM_FINANCE PaymentProvider = "TOM_FINANCE" + PaymentProvider_ALFABANK PaymentProvider = "ALFABANK" + PaymentProvider_PAYCELL PaymentProvider = "PAYCELL" PaymentProvider_HASO PaymentProvider = "HASO" PaymentProvider_OFFLINE PaymentProvider = "OFFLINE" ) From 5226ed333413e8680ebee5a3f94a3432f53b7309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Semih=20=C5=9Eahan?= Date: Thu, 21 Mar 2024 16:11:29 +0300 Subject: [PATCH 07/26] Adds instant transfer with Compay integration as apm (#78) * Adds instant transfer with Compay integration as apm * Update * Update * Update --- adapter/model.go | 97 +++++++++++++++----------- adapter/payment.go | 14 ++++ tests/instant_transfer_payment_test.go | 53 ++++++++++++++ 3 files changed, 123 insertions(+), 41 deletions(-) create mode 100644 tests/instant_transfer_payment_test.go diff --git a/adapter/model.go b/adapter/model.go index 9a2966f..e010520 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -83,6 +83,7 @@ const ( ApmType_KLARNA ApmType = "KLARNA" ApmType_AFTERPAY ApmType = "AFTERPAY" ApmType_KASPI ApmType = "KASPI" + ApmType_INSTANT_TRANSFER ApmType = "INSTANT_TRANSFER" ApmType_TOMPAY ApmType = "TOMPAY" ApmType_MASLAK ApmType = "MASLAK" ApmType_ALFABANK ApmType = "ALFABANK" @@ -96,31 +97,32 @@ const ( // payment provider declaration const ( - PaymentProvider_BANK PaymentProvider = "BANK" - PaymentProvider_CG_WALLET PaymentProvider = "CG_WALLET" - PaymentProvider_MASTERPASS PaymentProvider = "MASTERPASS" - PaymentProvider_GARANTI_PAY PaymentProvider = "GARANTI_PAY" - PaymentProvider_YKB_WORLD_PAY PaymentProvider = "YKB_WORLD_PAY" - PaymentProvider_PAPARA PaymentProvider = "PAPARA" - PaymentProvider_PAYONEER PaymentProvider = "PAYONEER" - PaymentProvider_SODEXO PaymentProvider = "SODEXO" - PaymentProvider_EDENRED PaymentProvider = "EDENRED" - PaymentProvider_ALIPAY PaymentProvider = "ALIPAY" - PaymentProvider_PAYPAL PaymentProvider = "PAYPAL" - PaymentProvider_KLARNA PaymentProvider = "KLARNA" - PaymentProvider_AFTERPAY PaymentProvider = "AFTERPAY" - PaymentProvider_APPLEPAY PaymentProvider = "APPLEPAY" - PaymentProvider_GOOGLEPAY PaymentProvider = "GOOGLEPAY" - PaymentProvider_HEPSIPAY PaymentProvider = "HEPSIPAY" - PaymentProvider_STRIPE PaymentProvider = "STRIPE" - PaymentProvider_KASPI PaymentProvider = "KASPI" - PaymentProvider_MASLAK PaymentProvider = "MASLAK" - PaymentProvider_TOMPAY PaymentProvider = "TOMPAY" - PaymentProvider_TOM_FINANCE PaymentProvider = "TOM_FINANCE" - PaymentProvider_ALFABANK PaymentProvider = "ALFABANK" - PaymentProvider_PAYCELL PaymentProvider = "PAYCELL" - PaymentProvider_HASO PaymentProvider = "HASO" - PaymentProvider_OFFLINE PaymentProvider = "OFFLINE" + PaymentProvider_BANK PaymentProvider = "BANK" + PaymentProvider_CG_WALLET PaymentProvider = "CG_WALLET" + PaymentProvider_MASTERPASS PaymentProvider = "MASTERPASS" + PaymentProvider_GARANTI_PAY PaymentProvider = "GARANTI_PAY" + PaymentProvider_YKB_WORLD_PAY PaymentProvider = "YKB_WORLD_PAY" + PaymentProvider_PAPARA PaymentProvider = "PAPARA" + PaymentProvider_PAYONEER PaymentProvider = "PAYONEER" + PaymentProvider_SODEXO PaymentProvider = "SODEXO" + PaymentProvider_EDENRED PaymentProvider = "EDENRED" + PaymentProvider_ALIPAY PaymentProvider = "ALIPAY" + PaymentProvider_PAYPAL PaymentProvider = "PAYPAL" + PaymentProvider_KLARNA PaymentProvider = "KLARNA" + PaymentProvider_AFTERPAY PaymentProvider = "AFTERPAY" + PaymentProvider_APPLEPAY PaymentProvider = "APPLEPAY" + PaymentProvider_GOOGLEPAY PaymentProvider = "GOOGLEPAY" + PaymentProvider_HEPSIPAY PaymentProvider = "HEPSIPAY" + PaymentProvider_STRIPE PaymentProvider = "STRIPE" + PaymentProvider_KASPI PaymentProvider = "KASPI" + PaymentProvider_INSTANT_TRANSFER PaymentProvider = "INSTANT_TRANSFER" + PaymentProvider_MASLAK PaymentProvider = "MASLAK" + PaymentProvider_TOMPAY PaymentProvider = "TOMPAY" + PaymentProvider_TOM_FINANCE PaymentProvider = "TOM_FINANCE" + PaymentProvider_ALFABANK PaymentProvider = "ALFABANK" + PaymentProvider_PAYCELL PaymentProvider = "PAYCELL" + PaymentProvider_HASO PaymentProvider = "HASO" + PaymentProvider_OFFLINE PaymentProvider = "OFFLINE" ) // pos apm payment provider declaration @@ -181,20 +183,21 @@ const ( // payment method declaration const ( - PaymentMethod_CARD PaymentMethod = "CARD" - PaymentMethod_MASTERPASS PaymentMethod = "MASTERPASS" - PaymentMethod_PAPARA PaymentMethod = "PAPARA" - PaymentMethod_PAYONEER PaymentMethod = "PAYONEER" - PaymentMethod_SODEXO PaymentMethod = "SODEXO" - PaymentMethod_EDENRED PaymentMethod = "EDENRED" - PaymentMethod_EDENRED_GIFT PaymentMethod = "EDENRED_GIFT" - PaymentMethod_ALIPAY PaymentMethod = "ALIPAY" - PaymentMethod_PAYPAL PaymentMethod = "PAYPAL" - PaymentMethod_KLARNA PaymentMethod = "KLARNA" - PaymentMethod_AFTERPAY PaymentMethod = "AFTERPAY" - PaymentMethod_KASPI PaymentMethod = "KASPI" - PaymentMethod_TOMPAY PaymentMethod = "TOMPAY" - PaymentMethod_STRIPE PaymentMethod = "STRIPE" + PaymentMethod_CARD PaymentMethod = "CARD" + PaymentMethod_MASTERPASS PaymentMethod = "MASTERPASS" + PaymentMethod_PAPARA PaymentMethod = "PAPARA" + PaymentMethod_PAYONEER PaymentMethod = "PAYONEER" + PaymentMethod_SODEXO PaymentMethod = "SODEXO" + PaymentMethod_EDENRED PaymentMethod = "EDENRED" + PaymentMethod_EDENRED_GIFT PaymentMethod = "EDENRED_GIFT" + PaymentMethod_ALIPAY PaymentMethod = "ALIPAY" + PaymentMethod_PAYPAL PaymentMethod = "PAYPAL" + PaymentMethod_KLARNA PaymentMethod = "KLARNA" + PaymentMethod_AFTERPAY PaymentMethod = "AFTERPAY" + PaymentMethod_KASPI PaymentMethod = "KASPI" + PaymentMethod_INSTANT_TRANSFER PaymentMethod = "INSTANT_TRANSFER" + PaymentMethod_TOMPAY PaymentMethod = "TOMPAY" + PaymentMethod_STRIPE PaymentMethod = "STRIPE" ) // card type declaration @@ -352,6 +355,7 @@ const ( const ( ApmAdditionalAction_REDIRECT_TO_URL ApmAdditionalAction = "REDIRECT_TO_URL" ApmAdditionalAction_OTP_REQUIRED ApmAdditionalAction = "OTP_REQUIRED" + ApmAdditionalAction_SHOW_HTML_CONTENT ApmAdditionalAction = "SHOW_HTML_CONTENT" ApmAdditionalAction_WAIT_FOR_WEBHOOK ApmAdditionalAction = "WAIT_FOR_WEBHOOK" ApmAdditionalAction_APPROVAL_REQUIRED ApmAdditionalAction = "APPROVAL_REQUIRED" ApmAdditionalAction_NONE ApmAdditionalAction = "NONE" @@ -992,6 +996,7 @@ type InitCheckoutPaymentResponse struct { type InitApmPaymentResponse struct { PaymentId *int64 `json:"paymentId"` RedirectUrl *string `json:"redirectUrl"` + HtmlContent *string `json:"htmlContent"` PaymentStatus *PaymentStatus `json:"paymentStatus"` ApmAdditionalAction *ApmAdditionalAction `json:"additionalAction"` PaymentError *PaymentError `json:"paymentError"` @@ -1325,6 +1330,16 @@ type InstallmentResponse struct { InstallmentPrices []InstallmentPrice `json:"installmentPrices"` } +type InstantTransferBanksResponse struct { + Items []InstantTransferBank `json:"items"` +} + +type InstantTransferBank struct { + BankCode *string `json:"bankCode"` + BankName *string `json:"bankName"` + BankLogoUrl *string `json:"bankLogoUrl"` +} + type RetrieveBinNumberResponse struct { BinNumber *string `json:"binNumber"` CardType *string `json:"cardType"` @@ -1685,8 +1700,8 @@ type SearchPayoutCompletedTransactionsRequest struct { SettlementType SettlementType `schema:"settlementType,omitempty"` StartDate time.Time `schema:"startDate,omitempty"` EndDate time.Time `schema:"endDate,omitempty"` - Page int `schema:"page"` - Size int `schema:"size"` + Page int `schema:"page"` + Size int `schema:"size"` } type SearchPayoutBouncedTransactionsRequest struct { diff --git a/adapter/payment.go b/adapter/payment.go index 5ca00ea..c2204bd 100644 --- a/adapter/payment.go +++ b/adapter/payment.go @@ -553,6 +553,20 @@ func (api *Payment) ApproveBnplPayment(ctx context.Context, paymentId int64) err return nil } +func (api *Payment) RetrieveActiveBanks(ctx context.Context) (*InstantTransferBanksResponse, error) { + newRequest, err := api.Client.NewRequest(ctx, http.MethodGet, "/payment/v1/instant-transfer-banks", nil) + if err != nil { + return nil, err + } + response := &Response[InstantTransferBanksResponse]{} + err = api.Client.Do(ctx, newRequest, response) + if err != nil { + return nil, err + } + + return response.Data, nil +} + func (c *Payment) Is3DSecureCallbackVerified(threeDSecureCallbackKey string, params map[string]string) bool { hash := params["hash"] hashString := strings.Join([]string{threeDSecureCallbackKey, diff --git a/tests/instant_transfer_payment_test.go b/tests/instant_transfer_payment_test.go new file mode 100644 index 0000000..ee30319 --- /dev/null +++ b/tests/instant_transfer_payment_test.go @@ -0,0 +1,53 @@ +package tests + +import ( + "context" + "testing" + + "github.com/craftgate/craftgate-go-client/adapter" + craftgate "github.com/craftgate/craftgate-go-client/adapter" + "github.com/davecgh/go-spew/spew" + "github.com/stretchr/testify/require" +) + +var instantTransferPaymentClient, _ = craftgate.New("api-key", "secret-key", "https://sandbox-api.craftgate.io") + +func TestRetrieveActiveBanks(t *testing.T) { + res, err := instantTransferPaymentClient.Payment.RetrieveActiveBanks(context.Background()) + require.NotEmpty(t, res.Items) + if err != nil { + t.Errorf("Error %s", err) + } +} + +func TestInitInstantTransferAPMPayment(t *testing.T) { + additionalParams := make(map[string]string) + additionalParams["bankCode"] = "0" + + request := adapter.InitApmPaymentRequest{ + ApmType: craftgate.ApmType_INSTANT_TRANSFER, + Price: 1, + PaidPrice: 1, + Currency: craftgate.Currency_TRY, + PaymentGroup: craftgate.PaymentGroup_LISTING_OR_SUBSCRIPTION, + ConversationId: "foo-bar", + CallbackUrl: "https://www.your-website.com/callback", + Items: []craftgate.PaymentItem{ + { + Name: "Item 1", + Price: 0.6, + }, + { + Name: "Item 2", + Price: 0.4, + }, + }, + AdditionalParams: additionalParams, + } + res, err := instantTransferPaymentClient.Payment.InitApmPayment(context.Background(), request) + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +} From d353f486f424b25f6f13b80d7dbaab8da7bfa846 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:51:40 +0300 Subject: [PATCH 08/26] Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#74) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sabri Onur Tüzün <335067+sotuzun@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5f6e7d0..969e57f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/davecgh/go-spew v1.1.1 github.com/gorilla/schema v1.2.1 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 ) require ( diff --git a/go.sum b/go.sum index e0d170a..e84444b 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ github.com/gorilla/schema v1.2.1 h1:tjDxcmdb+siIqkTNoV+qRH2mjYdr2hHe5MKXbp61ziM= github.com/gorilla/schema v1.2.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From 1e3bc06680336b36269aeff372cda4febe08bee5 Mon Sep 17 00:00:00 2001 From: Onur Polattimur Date: Fri, 22 Mar 2024 15:01:15 +0300 Subject: [PATCH 09/26] Add GarantiPay v2 integration (#75) --- adapter/model.go | 7 ++++--- tests/payment_test.go | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index e010520..93c28d8 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -127,9 +127,10 @@ const ( // pos apm payment provider declaration const ( - PosApmPaymentProvider_YKB_WORLD_PAY PosApmPaymentProvider = "YKB_WORLD_PAY" - PosApmPaymentProvider_APPLEPAY PosApmPaymentProvider = "APPLEPAY" - PosApmPaymentProvider_GOOGLEPAY PosApmPaymentProvider = "GOOGLEPAY" + PosApmPaymentProvider_YKB_WORLD_PAY PosApmPaymentProvider = "YKB_WORLD_PAY" + PosApmPaymentProvider_YKB_WORLD_PAY_SHOPPING_LOAN PosApmPaymentProvider = "YKB_WORLD_PAY_SHOPPING_LOAN" + PosApmPaymentProvider_GOOGLEPAY PosApmPaymentProvider = "GOOGLEPAY" + PosApmPaymentProvider_GARANTI_PAY PosApmPaymentProvider = "GARANTI_PAY" ) // payment status declaration diff --git a/tests/payment_test.go b/tests/payment_test.go index 881d4f5..bbbeab2 100644 --- a/tests/payment_test.go +++ b/tests/payment_test.go @@ -533,7 +533,7 @@ func TestPayment_CompleteApmPayment(t *testing.T) { } } -func TestPayment_InitPosApmPayment(t *testing.T) { +func TestPayment_InitYkbWorldPayPosApmPayment(t *testing.T) { request := adapter.InitPosApmPaymentRequest{ Price: 1.25, PaidPrice: 1.25, @@ -566,6 +566,39 @@ func TestPayment_InitPosApmPayment(t *testing.T) { } } +func TestPayment_InitGarantiPayPosApmPayment(t *testing.T) { + request := adapter.InitPosApmPaymentRequest{ + Price: 1.25, + PaidPrice: 1.25, + Currency: craftgate.Currency_TRY, + PaymentGroup: craftgate.PaymentGroup_LISTING_OR_SUBSCRIPTION, + ConversationId: "foo-bar", + PaymentProvider: craftgate.PosApmPaymentProvider_GARANTI_PAY, + CallbackUrl: "https://www.your-website.com/callback", + Items: []craftgate.PaymentItem{ + { + Name: "Item 1", + Price: 1, + ExternalId: "1", + }, + { + Name: "Item 2", + Price: 0.25, + ExternalId: "2", + }, + }, + AdditionalParams: map[string]string{ + "integrationType": "WEB2APP", + }, + } + res, err := paymentClient.Payment.InitPosApmPayment(context.Background(), request) + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +} + func TestPayment_CompletePosApmPayment(t *testing.T) { request := adapter.CompletePosApmPaymentRequest{ PaymentId: 123, From 57ca2b45200fdbf0e20b2476d08d52a3a05bba81 Mon Sep 17 00:00:00 2001 From: Onur Polattimur Date: Tue, 26 Mar 2024 10:52:08 +0300 Subject: [PATCH 10/26] Add ApplePay integration (#49) --- adapter/model.go | 46 +++++++++++++++++++++++++++++++++------------- adapter/payment.go | 15 +++++++++++++++ 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index 93c28d8..dc18ccc 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -7,6 +7,7 @@ type ApmType string type PaymentProvider string type PosApmPaymentProvider string type PaymentStatus string +type TokenizedCardType string type PaymentSource string type PaymentGroup string type PaymentPhase string @@ -558,6 +559,11 @@ const ( ClientType_M ClientType = "M" ) +// tokenized card type declaration +const ( + TokenizedCardType_APPLE_PAY TokenizedCardType = "APPLE_PAY" +) + // requests type CreatePaymentRequest struct { Price float64 `json:"price,omitempty"` @@ -825,6 +831,14 @@ type StoreCardRequest struct { CardUserKey string `json:"cardUserKey,omitempty"` } +type ApplePayMerchantSessionCreateRequest struct { + MerchantIdentifier string `json:"merchantIdentifier,omitempty"` + DisplayName string `json:"displayName,omitempty"` + Initiative string `json:"initiative,omitempty"` + InitiativeContext string `json:"initiativeContext,omitempty"` + ValidationUrl string `json:"validationUrl,omitempty"` +} + type CheckMasterpassUserRequest struct { MasterpassGsmNumber string `json:"masterpassGsmNumber"` } @@ -1921,20 +1935,26 @@ type Loyalty struct { Message *string `json:"message,omitempty"` } +type TokenizedCard struct { + TokenizedCardType TokenizedCardType `json:"type,omitempty"` + Data map[string]interface{} `json:"data,omitempty"` +} + type Card struct { - CardHolderName string `json:"cardHolderName,omitempty"` - CardNumber string `json:"cardNumber,omitempty"` - ExpireYear string `json:"expireYear,omitempty"` - ExpireMonth string `json:"expireMonth,omitempty"` - Cvc string `json:"cvc,omitempty"` - CardAlias string `json:"cardAlias,omitempty"` - CardUserKey string `json:"cardUserKey,omitempty"` - CardToken string `json:"cardToken,omitempty"` - BinNumber string `json:"binNumber,omitempty"` - LastFourDigits string `json:"lastFourDigits,omitempty"` - CardHolderIdentityNumber string `json:"cardHolderIdentityNumber,omitempty"` - Loyalty *Loyalty `json:"loyalty,omitempty"` - StoreCardAfterSuccessPayment bool `json:"storeCardAfterSuccessPayment,omitempty"` + CardHolderName string `json:"cardHolderName,omitempty"` + CardNumber string `json:"cardNumber,omitempty"` + ExpireYear string `json:"expireYear,omitempty"` + ExpireMonth string `json:"expireMonth,omitempty"` + Cvc string `json:"cvc,omitempty"` + CardAlias string `json:"cardAlias,omitempty"` + CardUserKey string `json:"cardUserKey,omitempty"` + CardToken string `json:"cardToken,omitempty"` + BinNumber string `json:"binNumber,omitempty"` + LastFourDigits string `json:"lastFourDigits,omitempty"` + CardHolderIdentityNumber string `json:"cardHolderIdentityNumber,omitempty"` + Loyalty *Loyalty `json:"loyalty,omitempty"` + StoreCardAfterSuccessPayment bool `json:"storeCardAfterSuccessPayment,omitempty"` + TokenizedCard *TokenizedCard `json:"tokenizedCard,omitempty"` } type FraudCheckParameters struct { diff --git a/adapter/payment.go b/adapter/payment.go index c2204bd..8040c97 100644 --- a/adapter/payment.go +++ b/adapter/payment.go @@ -567,6 +567,21 @@ func (api *Payment) RetrieveActiveBanks(ctx context.Context) (*InstantTransferBa return response.Data, nil } +func (api *Payment) CreateApplePayMerchantSession(ctx context.Context, request ApplePayMerchantSessionCreateRequest) (*interface{}, error) { + newRequest, err := api.Client.NewRequest(ctx, http.MethodPost, "/payment/v1/apple-pay/merchant-sessions", request) + if err != nil { + return nil, err + } + + response := &Response[interface{}]{} + err = api.Client.Do(ctx, newRequest, response) + if err != nil { + return nil, err + } + + return response.Data, nil +} + func (c *Payment) Is3DSecureCallbackVerified(threeDSecureCallbackKey string, params map[string]string) bool { hash := params["hash"] hashString := strings.Join([]string{threeDSecureCallbackKey, From 9ce0dd0de98a9c9efc44eb10275a6e661207fa8a Mon Sep 17 00:00:00 2001 From: Avni BALIKCI <108258717+abalikci@users.noreply.github.com> Date: Thu, 28 Mar 2024 22:14:30 +0300 Subject: [PATCH 11/26] Add card clone adapter (#80) --- adapter/model.go | 7 +++++++ adapter/payment.go | 16 ++++++++++++++++ tests/payment_test.go | 14 ++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/adapter/model.go b/adapter/model.go index dc18ccc..919a608 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -791,6 +791,13 @@ type UpdateStoredCardRequest struct { ExpireMonth string `json:"expireMonth,omitempty"` } +type CloneStoredCardRequest struct { + SourceCardUserKey string `json:"sourceCardUserKey"` + SourceCardToken string `json:"sourceCardToken"` + TargetCardUserKey string `json:"targetCardUserKey,omitempty"` + TargetMerchantId int64 `json:"targetMerchantId"` +} + type DeleteStoredCardRequest struct { CardUserKey string `json:"cardUserKey,omitempty"` CardToken string `json:"cardToken,omitempty"` diff --git a/adapter/payment.go b/adapter/payment.go index 8040c97..e97eadd 100644 --- a/adapter/payment.go +++ b/adapter/payment.go @@ -433,6 +433,22 @@ func (api *Payment) UpdateStoredCard(ctx context.Context, request UpdateStoredCa return response.Data, nil } +func (api *Payment) CloneStoredCard(ctx context.Context, request CloneStoredCardRequest) (*StoredCardResponse, error) { + newRequest, err := api.Client.NewRequest(ctx, http.MethodPost, "/payment/v1/cards/clone", request) + + if err != nil { + return nil, err + } + + response := &Response[StoredCardResponse]{} + err = api.Client.Do(ctx, newRequest, response) + if err != nil { + return nil, err + } + + return response.Data, nil +} + func (api *Payment) DeleteStoredCard(ctx context.Context, request DeleteStoredCardRequest) error { newRequest, err := api.Client.NewRequest(ctx, http.MethodPost, "/payment/v1/cards/delete", request) if err != nil { diff --git a/tests/payment_test.go b/tests/payment_test.go index bbbeab2..f9a2349 100644 --- a/tests/payment_test.go +++ b/tests/payment_test.go @@ -704,6 +704,20 @@ func TestPayment_UpdateStoredCard(t *testing.T) { } } +func TestPayment_CloneStoredCard(t *testing.T) { + request := adapter.CloneStoredCardRequest{ + SourceCardUserKey: "6bcbac4b-6460-418d-b060-2d9896c08156", + SourceCardToken: "aa57f470-7423-449e-87b7-afb1fba151fb", + TargetMerchantId: 1, + } + res, err := paymentClient.Payment.CloneStoredCard(context.Background(), request) + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +} + func TestPayment_DeleteStoredCard(t *testing.T) { request := adapter.DeleteStoredCardRequest{ CardUserKey: "d94018bb-baa9-4418-84f8-760942f669af", From 2dd8f6968e611fe211e5ef671e1e6afa5e9d74f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Semih=20=C5=9Eahan?= Date: Mon, 1 Apr 2024 17:47:20 +0300 Subject: [PATCH 12/26] Removes identity number field on onboarding flow (#81) * Add card clone adapter (#80) * Removes identity number field on onboarding flow * Update --------- Co-authored-by: Avni BALIKCI <108258717+abalikci@users.noreply.github.com> --- adapter/model.go | 3 --- tests/onboarding_test.go | 9 +++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index 919a608..48927d6 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1378,7 +1378,6 @@ type CreateMemberRequest struct { Address string `json:"address,omitempty"` Email string `json:"email,omitempty"` PhoneNumber string `json:"phoneNumber,omitempty"` - IdentityNumber string `json:"identityNumber,omitempty"` ContactName string `json:"contactName,omitempty"` ContactSurname string `json:"contactSurname,omitempty"` MemberType MemberType `json:"memberType,omitempty"` @@ -1397,7 +1396,6 @@ type UpdateMemberRequest struct { Address string `json:"address,omitempty"` Email string `json:"email,omitempty"` PhoneNumber string `json:"phoneNumber,omitempty"` - IdentityNumber string `json:"identityNumber,omitempty"` ContactName string `json:"contactName,omitempty"` ContactSurname string `json:"contactSurname,omitempty"` MemberType MemberType `json:"memberType,omitempty"` @@ -1435,7 +1433,6 @@ type MemberResponse struct { Email *string `json:"email"` Address *string `json:"address"` PhoneNumber *string `json:"phoneNumber"` - IdentityNumber *string `json:"identityNumber"` ContactName *string `json:"contactName"` ContactSurname *string `json:"contactSurname"` LegalCompanyTitle *string `json:"legalCompanyTitle"` diff --git a/tests/onboarding_test.go b/tests/onboarding_test.go index e1bde82..6458faf 100644 --- a/tests/onboarding_test.go +++ b/tests/onboarding_test.go @@ -3,11 +3,12 @@ package tests import ( "context" "fmt" + "testing" + "time" + "github.com/craftgate/craftgate-go-client/adapter" craftgate "github.com/craftgate/craftgate-go-client/adapter" "github.com/davecgh/go-spew/spew" - "testing" - "time" ) var onboardingClient, _ = craftgate.New("api-key", "secret-key", "https://sandbox-api.craftgate.io") @@ -41,7 +42,6 @@ func Test_CreateSubMerchantMember(t *testing.T) { Email: "haluk.demir@example.com", PhoneNumber: "905551111111", Iban: "TR930006701000000001111111", - IdentityNumber: "11111111110", LegalCompanyTitle: "Dem Zeytinyağı Üretim Ltd. Şti.", Name: "Dem Zeytinyağı Üretim Ltd. Şti.", MemberType: craftgate.MemberType_LIMITED_OR_JOINT_STOCK_COMPANY, @@ -68,7 +68,6 @@ func Test_CreateBuyerAndSubMerchantMember(t *testing.T) { Email: "haluk.demir@example.com", PhoneNumber: "905551111111", Iban: "TR930006701000000001111111", - IdentityNumber: "11111111110", LegalCompanyTitle: "Dem Zeytinyağı Üretim Ltd. Şti.", Name: "Dem Zeytinyağı Üretim Ltd. Şti.", MemberType: craftgate.MemberType_LIMITED_OR_JOINT_STOCK_COMPANY, @@ -94,7 +93,6 @@ func Test_UpdateSubMerchantMember(t *testing.T) { Email: "haluk.demir@example.com", PhoneNumber: "905551111111", Iban: "TR930006701000000001111111", - IdentityNumber: "11111111110", LegalCompanyTitle: "Dem Zeytinyağı Üretim Ltd. Şti.", Name: "Dem Zeytinyağı Üretim Ltd. Şti.", MemberType: craftgate.MemberType_LIMITED_OR_JOINT_STOCK_COMPANY, @@ -121,7 +119,6 @@ func Test_UpdateBuyerMember(t *testing.T) { Email: "haluk.demir@example.com", PhoneNumber: "905551111111", Iban: "TR930006701000000001111111", - IdentityNumber: "11111111110", LegalCompanyTitle: "Dem Zeytinyağı Üretim Ltd. Şti.", Name: "Dem Zeytinyağı Üretim Ltd. Şti.", MemberType: craftgate.MemberType_PERSONAL, From d18bbcd90c54febcbdb20d843218cf6571e992c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:12:01 +0300 Subject: [PATCH 13/26] Bump github.com/gorilla/schema from 1.2.1 to 1.3.0 (#79) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/gorilla/schema](https://github.com/gorilla/schema) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/gorilla/schema/releases) - [Commits](https://github.com/gorilla/schema/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: github.com/gorilla/schema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sabri Onur Tüzün <335067+sotuzun@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 969e57f..a68972a 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/davecgh/go-spew v1.1.1 - github.com/gorilla/schema v1.2.1 + github.com/gorilla/schema v1.3.0 github.com/stretchr/testify v1.9.0 ) diff --git a/go.sum b/go.sum index e84444b..ae6d708 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/gorilla/schema v1.2.1 h1:tjDxcmdb+siIqkTNoV+qRH2mjYdr2hHe5MKXbp61ziM= -github.com/gorilla/schema v1.2.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= +github.com/gorilla/schema v1.3.0 h1:rbciOzXAx3IB8stEFnfTwO3sYa6EWlQk79XdyustPDA= +github.com/gorilla/schema v1.3.0/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= From 15596041a8c19931735a015f55595ed473ad041e Mon Sep 17 00:00:00 2001 From: Serhat Tunca <35580464+tuncaserhat@users.noreply.github.com> Date: Tue, 16 Apr 2024 14:19:46 +0300 Subject: [PATCH 14/26] add pay by link multi payment support (#83) --- adapter/model.go | 20 ++++++++++++++++++++ adapter/payment.go | 15 +++++++++++++++ tests/payment_test.go | 9 +++++++++ 3 files changed, 44 insertions(+) diff --git a/adapter/model.go b/adapter/model.go index 48927d6..c1279c9 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -17,6 +17,7 @@ type CardAssociation string type CardExpiryStatus string type Currency string type LoyaltyType string +type MultiPaymentStatus string type PaymentRefundStatus string type RefundStatus string type RefundType string @@ -239,6 +240,12 @@ const ( LoyaltyType_POSTPONING_STATEMENT LoyaltyType = "POSTPONING_STATEMENT" ) +// multi payment status declaration +const ( + MultiPaymentStatus_CREATED MultiPaymentStatus = "CREATED" + MultiPaymentStatus_COMPLETED MultiPaymentStatus = "COMPLETED" +) + // payment refund status declaration const ( PaymentRefundStatus_NO_REFUND PaymentRefundStatus = "NO_REFUND" @@ -1450,6 +1457,7 @@ type CreateProductRequest struct { Price float64 `json:"price"` Currency Currency `json:"currency"` Description string `json:"description,omitempty"` + MultiPayment bool `json:"multiPayment,omitempty"` EnabledInstallments []int `json:"enabledInstallments"` } @@ -2109,6 +2117,18 @@ type MerchantPosCommissionResponse struct { MerchantCommissionRate float64 `json:"merchantCommissionRate"` } +type MultiPaymentResponse struct { + Id *int64 `json:"id"` + MultiPaymentStatus *MultiPaymentStatus `json:"multiPaymentStatus"` + Token *string `json:"token"` + ConversationId *string `json:"conversationId"` + ExternalId *string `json:"externalId"` + PaidPrice *float64 `json:"paidPrice"` + RemainingAmount *float64 `json:"remainingAmount"` + TokenExpireDate *TimeResponse `json:"tokenExpireDate"` + PaymentIds []int64 `json:"paymentIds"` +} + type CreateMerchantPosCommission struct { CardBrandName CardBrand `json:"cardBrandName,omitempty"` Installment int64 `json:"installment"` diff --git a/adapter/payment.go b/adapter/payment.go index e97eadd..1925616 100644 --- a/adapter/payment.go +++ b/adapter/payment.go @@ -598,6 +598,21 @@ func (api *Payment) CreateApplePayMerchantSession(ctx context.Context, request A return response.Data, nil } +func (api *Payment) RetrieveMultiPayment(ctx context.Context, token string) (*MultiPaymentResponse, error) { + newRequest, err := api.Client.NewRequest(ctx, http.MethodGet, fmt.Sprintf("/payment/v1/multi-payments/%s", token), nil) + if err != nil { + return nil, err + } + + response := &Response[MultiPaymentResponse]{} + err = api.Client.Do(ctx, newRequest, response) + if err != nil { + return nil, err + } + + return response.Data, nil +} + func (c *Payment) Is3DSecureCallbackVerified(threeDSecureCallbackKey string, params map[string]string) bool { hash := params["hash"] hashString := strings.Join([]string{threeDSecureCallbackKey, diff --git a/tests/payment_test.go b/tests/payment_test.go index f9a2349..9b1023b 100644 --- a/tests/payment_test.go +++ b/tests/payment_test.go @@ -950,3 +950,12 @@ func TestPayment_ApproveBnplPayment(t *testing.T) { t.Errorf("Error %s", err) } } + +func TestPayment_RetrieveMultiPayment(t *testing.T) { + res, err := paymentClient.Payment.RetrieveMultiPayment(context.Background(), "6d7e66b5-9b1c-4c1d-879a-2557b651096e") + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +} From 1540b7ca65ed64b15f317916b6a923614360f669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alican=20Akku=C5=9F?= Date: Tue, 16 Apr 2024 17:04:46 +0300 Subject: [PATCH 15/26] Adds calculation flag to describe offers getting from bank (#84) --- adapter/model.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index c1279c9..b47f033 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1682,13 +1682,14 @@ type BnplPaymentOfferResponse struct { } type BnplBankOffer struct { - BankCode string `json:"bankCode"` - BankName string `json:"bankName"` - BankIconUrl string `json:"bankIconUrl"` - BankTableBannerMessage string `json:"bankTableBannerMessage"` - BankSmallBannerMessage string `json:"bankSmallBannerMessage"` - IsSupportNonCustomer bool `json:"isSupportNonCustomer"` - BnplBankOfferTerm *[]BnplBankOfferTerm `json:"bankOfferTerms"` + BankCode string `json:"bankCode"` + BankName string `json:"bankName"` + BankIconUrl string `json:"bankIconUrl"` + BankTableBannerMessage string `json:"bankTableBannerMessage"` + BankSmallBannerMessage string `json:"bankSmallBannerMessage"` + IsSupportNonCustomer bool `json:"isSupportNonCustomer"` + IsPaymentPlanCalculatedByBank bool `json:"isPaymentPlanCalculatedByBank"` + BnplBankOfferTerm *[]BnplBankOfferTerm `json:"bankOfferTerms"` } type BnplBankOfferTerm struct { From 9c9205abf080a9940358917c6cae20ca0cae147a Mon Sep 17 00:00:00 2001 From: Emre INAL <9061788+reywyn@users.noreply.github.com> Date: Tue, 16 Apr 2024 17:06:28 +0300 Subject: [PATCH 16/26] Adds mdStatus to RetrieveCheckoutPayment (#82) --- adapter/model.go | 1 + 1 file changed, 1 insertion(+) diff --git a/adapter/model.go b/adapter/model.go index b47f033..a41addf 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -974,6 +974,7 @@ type PaymentResponse struct { AuthCode *string `json:"authCode"` HostReference *string `json:"hostReference"` TransId *string `json:"transId"` + MdStatus *int `json:"mdStatus"` OrderId *string `json:"orderId"` CardHolderName *string `json:"cardHolderName"` BankCardHolderName *string `json:"bankCardHolderName"` From a248ba22ab3108a2600168056e76158173d13836 Mon Sep 17 00:00:00 2001 From: Avni BALIKCI <108258717+abalikci@users.noreply.github.com> Date: Tue, 30 Apr 2024 09:57:25 +0300 Subject: [PATCH 17/26] Adds missing pay by link optional fields to request and response (externalId, conversationId) (#85) --- adapter/model.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/adapter/model.go b/adapter/model.go index a41addf..39c2aa3 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1454,6 +1454,8 @@ type CreateProductRequest struct { Name string `json:"name"` Channel string `json:"channel,omitempty"` OrderId string `json:"orderId,omitempty"` + ConversationId string `json:"conversationId,omitempty"` + ExternalId string `json:"externalId,omitempty"` Stock int `json:"stock,omitempty"` Price float64 `json:"price"` Currency Currency `json:"currency"` @@ -1466,6 +1468,8 @@ type UpdateProductRequest struct { Name string `json:"name"` Channel string `json:"channel,omitempty"` OrderId string `json:"orderId,omitempty"` + ConversationId string `json:"conversationId,omitempty"` + ExternalId string `json:"externalId,omitempty"` Stock int `json:"stock,omitempty"` Status Status `json:"status"` Price float64 `json:"price"` @@ -1489,6 +1493,8 @@ type ProductResponse struct { Name *string `json:"name"` Description *string `json:"description"` OrderId *string `json:"orderId,omitempty"` + ConversationId *string `json:"conversationId,omitempty"` + ExternalId *string `json:"externalId,omitempty"` Status *Status `json:"status"` Price *float64 `json:"price"` Currency *Currency `json:"currency"` From 6408c53c0fade5a299836c3e6428db12a8e1b5ac Mon Sep 17 00:00:00 2001 From: Avni BALIKCI <108258717+abalikci@users.noreply.github.com> Date: Wed, 15 May 2024 15:22:49 +0300 Subject: [PATCH 18/26] Adds metropol integration as APM (#87) * Adds metropol integration as APM * Adds metropol integration as APM --- adapter/model.go | 5 +++-- tests/payment_test.go | 49 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index 39c2aa3..37a1f01 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -79,6 +79,7 @@ const ( ApmType_PAPARA ApmType = "PAPARA" ApmType_PAYONEER ApmType = "PAYONEER" ApmType_SODEXO ApmType = "SODEXO" + ApmType_METROPOL ApmType = "METROPOL" ApmType_EDENRED ApmType = "EDENRED" ApmType_EDENRED_GIFT ApmType = "EDENRED_GIFT" ApmType_PAYPAL ApmType = "PAYPAL" @@ -107,6 +108,7 @@ const ( PaymentProvider_PAPARA PaymentProvider = "PAPARA" PaymentProvider_PAYONEER PaymentProvider = "PAYONEER" PaymentProvider_SODEXO PaymentProvider = "SODEXO" + PaymentProvider_METROPOL PaymentProvider = "METROPOL" PaymentProvider_EDENRED PaymentProvider = "EDENRED" PaymentProvider_ALIPAY PaymentProvider = "ALIPAY" PaymentProvider_PAYPAL PaymentProvider = "PAYPAL" @@ -197,9 +199,7 @@ const ( PaymentMethod_PAYPAL PaymentMethod = "PAYPAL" PaymentMethod_KLARNA PaymentMethod = "KLARNA" PaymentMethod_AFTERPAY PaymentMethod = "AFTERPAY" - PaymentMethod_KASPI PaymentMethod = "KASPI" PaymentMethod_INSTANT_TRANSFER PaymentMethod = "INSTANT_TRANSFER" - PaymentMethod_TOMPAY PaymentMethod = "TOMPAY" PaymentMethod_STRIPE PaymentMethod = "STRIPE" ) @@ -1030,6 +1030,7 @@ type InitApmPaymentResponse struct { PaymentStatus *PaymentStatus `json:"paymentStatus"` ApmAdditionalAction *ApmAdditionalAction `json:"additionalAction"` PaymentError *PaymentError `json:"paymentError"` + AdditionalData map[string]any `json:"additionalData"` } type CompleteApmPaymentResponse struct { diff --git a/tests/payment_test.go b/tests/payment_test.go index 9b1023b..7920f57 100644 --- a/tests/payment_test.go +++ b/tests/payment_test.go @@ -399,6 +399,55 @@ func TestPayment_InitApmPayment(t *testing.T) { } } +func TestPayment_InitMetropolApmPayment(t *testing.T) { + request := adapter.InitApmPaymentRequest{ + ApmType: craftgate.ApmType_METROPOL, + Price: 1.25, + PaidPrice: 1.25, + Currency: craftgate.Currency_TRY, + PaymentGroup: craftgate.PaymentGroup_LISTING_OR_SUBSCRIPTION, + ConversationId: "foo-bar", + Items: []craftgate.PaymentItem{ + { + Name: "Item 1", + Price: 1, + ExternalId: "1", + }, + { + Name: "Item 2", + Price: 0.25, + ExternalId: "2", + }, + }, + AdditionalParams: map[string]string{ + "apmUserIdentity": "6375780115068760", + }, + } + res, err := paymentClient.Payment.InitApmPayment(context.Background(), request) + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +} + +func TestPayment_CompleteMetropolApmPayment(t *testing.T) { + request := adapter.CompleteApmPaymentRequest{ + PaymentId: 126, + AdditionalParams: map[string]string{ + "otpCode": "00000", + "productId": "1", + "walletId": "1", + }, + } + res, err := paymentClient.Payment.CompleteApmPayment(context.Background(), request) + _, _ = spew.Printf("%#v\n", res) + + if err != nil { + t.Errorf("Error %s", err) + } +} + func TestPayment_InitKlarnaApmPayment(t *testing.T) { request := adapter.InitApmPaymentRequest{ ApmType: craftgate.ApmType_KLARNA, From 25d0f7fc61722cd30c4add6aa3f82016f1bbf3bd Mon Sep 17 00:00:00 2001 From: Avni BALIKCI <108258717+abalikci@users.noreply.github.com> Date: Thu, 16 May 2024 11:37:01 +0300 Subject: [PATCH 19/26] Updates metropol card input parameter (#88) --- tests/payment_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/payment_test.go b/tests/payment_test.go index 7920f57..7af850d 100644 --- a/tests/payment_test.go +++ b/tests/payment_test.go @@ -420,7 +420,7 @@ func TestPayment_InitMetropolApmPayment(t *testing.T) { }, }, AdditionalParams: map[string]string{ - "apmUserIdentity": "6375780115068760", + "cardNumber": "6375780115068760", }, } res, err := paymentClient.Payment.InitApmPayment(context.Background(), request) From 138ce70652bb975814d4bde918b030f493a041e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alican=20Akku=C5=9F?= Date: Thu, 16 May 2024 15:14:29 +0300 Subject: [PATCH 20/26] Add member based settlement delay count (#89) --- adapter/model.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/adapter/model.go b/adapter/model.go index 37a1f01..82333cd 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1398,6 +1398,7 @@ type CreateMemberRequest struct { IsBuyer bool `json:"isBuyer,omitempty"` IsSubMerchant bool `json:"isSubMerchant,omitempty"` SubMerchantMaximumAllowedNegativeBalance float64 `json:"subMerchantMaximumAllowedNegativeBalance,omitempty"` + SettlementDelayCount int64 `json:"settlementDelayCount,omitempty"` } type UpdateMemberRequest struct { @@ -1416,6 +1417,7 @@ type UpdateMemberRequest struct { IsBuyer bool `json:"isBuyer,omitempty"` IsSubMerchant bool `json:"isSubMerchant,omitempty"` SubMerchantMaximumAllowedNegativeBalance float64 `json:"subMerchantMaximumAllowedNegativeBalance,omitempty"` + SettlementDelayCount int64 `json:"settlementDelayCount,omitempty"` } type SearchMembersRequest struct { @@ -1449,6 +1451,7 @@ type MemberResponse struct { TaxNumber *string `json:"taxNumber"` SettlementEarningsDestination *SettlementEarningsDestination `json:"settlementEarningsDestination"` Iban *string `json:"iban"` + SettlementDelayCount *int64 `json:"settlementDelayCount"` } type CreateProductRequest struct { From e980a233364de4455d8457a2db3a0f1c758f3a4f Mon Sep 17 00:00:00 2001 From: Onur Polattimur Date: Thu, 6 Jun 2024 12:01:40 +0300 Subject: [PATCH 21/26] Add paymentId field to masterpass 3ds init response (#91) --- adapter/model.go | 1 + 1 file changed, 1 insertion(+) diff --git a/adapter/model.go b/adapter/model.go index 82333cd..877cede 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -1096,6 +1096,7 @@ type PayoutAccountResponse struct { } type MasterpassPaymentThreeDSInitResponse struct { + PaymentId *int64 `json:"paymentId"` ReturnUrl *string `json:"returnUrl"` } From 7c5cfd1300f21dc441d6f2fc4afab5e557285aaf Mon Sep 17 00:00:00 2001 From: Onur Polattimur Date: Thu, 6 Jun 2024 17:36:30 +0300 Subject: [PATCH 22/26] Add masterpass integration version field to generate token request (#92) --- adapter/model.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index 877cede..0be18c0 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -879,12 +879,13 @@ type SearchPayoutAccountRequest struct { } type MasterpassPaymentTokenGenerateRequest struct { - Msisdn string `json:"msisdn,omitempty"` - UserId string `json:"userId,omitempty"` - BinNumber string `json:"binNumber,omitempty"` - ForceThreeDS bool `json:"forceThreeDS,omitempty"` - CreatePayment MasterpassCreatePayment `json:"createPayment,omitempty"` - Loyalty Loyalty `json:"loyalty,omitempty"` + Msisdn string `json:"msisdn,omitempty"` + UserId string `json:"userId,omitempty"` + BinNumber string `json:"binNumber,omitempty"` + ForceThreeDS bool `json:"forceThreeDS,omitempty"` + CreatePayment MasterpassCreatePayment `json:"createPayment,omitempty"` + Loyalty *Loyalty `json:"loyalty,omitempty"` + MasterpassIntegrationVersion int `json:"masterpassIntegrationVersion,omitempty"` } type MasterpassPaymentCompleteRequest struct { From 92e16e0b8bf80014e5f13c76469c61204c3d0a0a Mon Sep 17 00:00:00 2001 From: Emre INAL <9061788+reywyn@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:29:09 +0300 Subject: [PATCH 23/26] Adds multinet as APM (#90) --- adapter/model.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/adapter/model.go b/adapter/model.go index 0be18c0..8daecc5 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -94,6 +94,8 @@ const ( ApmType_STRIPE ApmType = "STRIPE" ApmType_PAYCELL ApmType = "PAYCELL" ApmType_HASO ApmType = "HASO" + ApmType_MULTINET ApmType = "MULTINET" + ApmType_MULTINET_GIFT ApmType = "MULTINET_GIFT" ApmType_FUND_TRANSFER ApmType = "FUND_TRANSFER" ApmType_CASH_ON_DELIVERY ApmType = "CASH_ON_DELIVERY" ) @@ -126,6 +128,7 @@ const ( PaymentProvider_ALFABANK PaymentProvider = "ALFABANK" PaymentProvider_PAYCELL PaymentProvider = "PAYCELL" PaymentProvider_HASO PaymentProvider = "HASO" + PaymentProvider_MULTINET PaymentProvider = "MULTINET" PaymentProvider_OFFLINE PaymentProvider = "OFFLINE" ) @@ -201,6 +204,8 @@ const ( PaymentMethod_AFTERPAY PaymentMethod = "AFTERPAY" PaymentMethod_INSTANT_TRANSFER PaymentMethod = "INSTANT_TRANSFER" PaymentMethod_STRIPE PaymentMethod = "STRIPE" + PaymentMethod_MULTINET PaymentMethod = "MULTINET" + PaymentMethod_MULTINET_GIFT PaymentMethod = "MULTINET_GIFT" ) // card type declaration From 9040f8bddd7cb2987d3a45d56f8e6d0dc1cfadea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:11:15 +0300 Subject: [PATCH 24/26] Bump github.com/gorilla/schema from 1.3.0 to 1.4.0 (#95) Bumps [github.com/gorilla/schema](https://github.com/gorilla/schema) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/gorilla/schema/releases) - [Commits](https://github.com/gorilla/schema/compare/v1.3.0...v1.4.0) --- updated-dependencies: - dependency-name: github.com/gorilla/schema dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a68972a..33bf2c0 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/davecgh/go-spew v1.1.1 - github.com/gorilla/schema v1.3.0 + github.com/gorilla/schema v1.4.0 github.com/stretchr/testify v1.9.0 ) diff --git a/go.sum b/go.sum index ae6d708..8c796a7 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/gorilla/schema v1.3.0 h1:rbciOzXAx3IB8stEFnfTwO3sYa6EWlQk79XdyustPDA= -github.com/gorilla/schema v1.3.0/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= +github.com/gorilla/schema v1.4.0 h1:l2N+lRTJtev9SUhBtj6NmSxd/6+8LhvN0kV+H2Y8R9k= +github.com/gorilla/schema v1.4.0/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= From 91d924ff5fa40664c58ae30edd475fbbcb75cead Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 23:53:44 +0300 Subject: [PATCH 25/26] Bump github.com/gorilla/schema from 1.4.0 to 1.4.1 (#96) Bumps [github.com/gorilla/schema](https://github.com/gorilla/schema) from 1.4.0 to 1.4.1. - [Release notes](https://github.com/gorilla/schema/releases) - [Commits](https://github.com/gorilla/schema/compare/v1.4.0...v1.4.1) --- updated-dependencies: - dependency-name: github.com/gorilla/schema dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 33bf2c0..b7b367c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/davecgh/go-spew v1.1.1 - github.com/gorilla/schema v1.4.0 + github.com/gorilla/schema v1.4.1 github.com/stretchr/testify v1.9.0 ) diff --git a/go.sum b/go.sum index 8c796a7..fa68a8f 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/gorilla/schema v1.4.0 h1:l2N+lRTJtev9SUhBtj6NmSxd/6+8LhvN0kV+H2Y8R9k= -github.com/gorilla/schema v1.4.0/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= +github.com/gorilla/schema v1.4.1 h1:jUg5hUjCSDZpNGLuXQOgIWGdlgrIdYvgQ0wZtdK1M3E= +github.com/gorilla/schema v1.4.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= From 4573edc86aa0b55666964486f85ee6cf9aafdde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alican=20Akku=C5=9F?= Date: Tue, 2 Jul 2024 17:13:17 +0300 Subject: [PATCH 26/26] Add ISPAY apm (#93) --- adapter/model.go | 112 ++++++++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 50 deletions(-) diff --git a/adapter/model.go b/adapter/model.go index 8daecc5..53b9892 100644 --- a/adapter/model.go +++ b/adapter/model.go @@ -76,60 +76,72 @@ const ( // apm type declaration const ( - ApmType_PAPARA ApmType = "PAPARA" - ApmType_PAYONEER ApmType = "PAYONEER" - ApmType_SODEXO ApmType = "SODEXO" - ApmType_METROPOL ApmType = "METROPOL" - ApmType_EDENRED ApmType = "EDENRED" - ApmType_EDENRED_GIFT ApmType = "EDENRED_GIFT" - ApmType_PAYPAL ApmType = "PAYPAL" - ApmType_KLARNA ApmType = "KLARNA" - ApmType_AFTERPAY ApmType = "AFTERPAY" - ApmType_KASPI ApmType = "KASPI" - ApmType_INSTANT_TRANSFER ApmType = "INSTANT_TRANSFER" - ApmType_TOMPAY ApmType = "TOMPAY" - ApmType_MASLAK ApmType = "MASLAK" - ApmType_ALFABANK ApmType = "ALFABANK" - ApmType_TOM_FINANCE ApmType = "TOM_FINANCE" - ApmType_STRIPE ApmType = "STRIPE" - ApmType_PAYCELL ApmType = "PAYCELL" - ApmType_HASO ApmType = "HASO" - ApmType_MULTINET ApmType = "MULTINET" - ApmType_MULTINET_GIFT ApmType = "MULTINET_GIFT" - ApmType_FUND_TRANSFER ApmType = "FUND_TRANSFER" - ApmType_CASH_ON_DELIVERY ApmType = "CASH_ON_DELIVERY" + ApmType_PAPARA ApmType = "PAPARA" + ApmType_PAYONEER ApmType = "PAYONEER" + ApmType_SODEXO ApmType = "SODEXO" + ApmType_METROPOL ApmType = "METROPOL" + ApmType_EDENRED ApmType = "EDENRED" + ApmType_EDENRED_GIFT ApmType = "EDENRED_GIFT" + ApmType_PAYPAL ApmType = "PAYPAL" + ApmType_KLARNA ApmType = "KLARNA" + ApmType_AFTERPAY ApmType = "AFTERPAY" + ApmType_KASPI ApmType = "KASPI" + ApmType_INSTANT_TRANSFER ApmType = "INSTANT_TRANSFER" + ApmType_TOMPAY ApmType = "TOMPAY" + ApmType_MASLAK ApmType = "MASLAK" + ApmType_ALFABANK ApmType = "ALFABANK" + ApmType_TOM_FINANCE ApmType = "TOM_FINANCE" + ApmType_STRIPE ApmType = "STRIPE" + ApmType_PAYCELL ApmType = "PAYCELL" + ApmType_HASO ApmType = "HASO" + ApmType_MULTINET ApmType = "MULTINET" + ApmType_MULTINET_GIFT ApmType = "MULTINET_GIFT" + ApmType_ALIPAY ApmType = "ALIPAY" + ApmType_APPLEPAY ApmType = "APPLEPAY" + ApmType_GOOGLEPAY ApmType = "GOOGLEPAY" + ApmType_HEPSIPAY_WALLET ApmType = "HEPSIPAY_WALLET" + ApmType_HEPSIPAY_SHOPPING_LOAN ApmType = "HEPSIPAY_SHOPPING_LOAN" + ApmType_ZIP ApmType = "ZIP" + ApmType_CHIPPIN ApmType = "CHIPPIN" + ApmType_ISPAY ApmType = "ISPAY" + ApmType_FUND_TRANSFER ApmType = "FUND_TRANSFER" + ApmType_CASH_ON_DELIVERY ApmType = "CASH_ON_DELIVERY" ) // payment provider declaration const ( - PaymentProvider_BANK PaymentProvider = "BANK" - PaymentProvider_CG_WALLET PaymentProvider = "CG_WALLET" - PaymentProvider_MASTERPASS PaymentProvider = "MASTERPASS" - PaymentProvider_GARANTI_PAY PaymentProvider = "GARANTI_PAY" - PaymentProvider_YKB_WORLD_PAY PaymentProvider = "YKB_WORLD_PAY" - PaymentProvider_PAPARA PaymentProvider = "PAPARA" - PaymentProvider_PAYONEER PaymentProvider = "PAYONEER" - PaymentProvider_SODEXO PaymentProvider = "SODEXO" - PaymentProvider_METROPOL PaymentProvider = "METROPOL" - PaymentProvider_EDENRED PaymentProvider = "EDENRED" - PaymentProvider_ALIPAY PaymentProvider = "ALIPAY" - PaymentProvider_PAYPAL PaymentProvider = "PAYPAL" - PaymentProvider_KLARNA PaymentProvider = "KLARNA" - PaymentProvider_AFTERPAY PaymentProvider = "AFTERPAY" - PaymentProvider_APPLEPAY PaymentProvider = "APPLEPAY" - PaymentProvider_GOOGLEPAY PaymentProvider = "GOOGLEPAY" - PaymentProvider_HEPSIPAY PaymentProvider = "HEPSIPAY" - PaymentProvider_STRIPE PaymentProvider = "STRIPE" - PaymentProvider_KASPI PaymentProvider = "KASPI" - PaymentProvider_INSTANT_TRANSFER PaymentProvider = "INSTANT_TRANSFER" - PaymentProvider_MASLAK PaymentProvider = "MASLAK" - PaymentProvider_TOMPAY PaymentProvider = "TOMPAY" - PaymentProvider_TOM_FINANCE PaymentProvider = "TOM_FINANCE" - PaymentProvider_ALFABANK PaymentProvider = "ALFABANK" - PaymentProvider_PAYCELL PaymentProvider = "PAYCELL" - PaymentProvider_HASO PaymentProvider = "HASO" - PaymentProvider_MULTINET PaymentProvider = "MULTINET" - PaymentProvider_OFFLINE PaymentProvider = "OFFLINE" + PaymentProvider_BANK PaymentProvider = "BANK" + PaymentProvider_CG_WALLET PaymentProvider = "CG_WALLET" + PaymentProvider_MASTERPASS PaymentProvider = "MASTERPASS" + PaymentProvider_GARANTI_PAY PaymentProvider = "GARANTI_PAY" + PaymentProvider_YKB_WORLD_PAY PaymentProvider = "YKB_WORLD_PAY" + PaymentProvider_PAPARA PaymentProvider = "PAPARA" + PaymentProvider_PAYONEER PaymentProvider = "PAYONEER" + PaymentProvider_SODEXO PaymentProvider = "SODEXO" + PaymentProvider_METROPOL PaymentProvider = "METROPOL" + PaymentProvider_EDENRED PaymentProvider = "EDENRED" + PaymentProvider_ALIPAY PaymentProvider = "ALIPAY" + PaymentProvider_PAYPAL PaymentProvider = "PAYPAL" + PaymentProvider_KLARNA PaymentProvider = "KLARNA" + PaymentProvider_AFTERPAY PaymentProvider = "AFTERPAY" + PaymentProvider_APPLEPAY PaymentProvider = "APPLEPAY" + PaymentProvider_GOOGLEPAY PaymentProvider = "GOOGLEPAY" + PaymentProvider_HEPSIPAY PaymentProvider = "HEPSIPAY" + PaymentProvider_STRIPE PaymentProvider = "STRIPE" + PaymentProvider_KASPI PaymentProvider = "KASPI" + PaymentProvider_INSTANT_TRANSFER PaymentProvider = "INSTANT_TRANSFER" + PaymentProvider_MASLAK PaymentProvider = "MASLAK" + PaymentProvider_TOMPAY PaymentProvider = "TOMPAY" + PaymentProvider_TOM_FINANCE PaymentProvider = "TOM_FINANCE" + PaymentProvider_ALFABANK PaymentProvider = "ALFABANK" + PaymentProvider_PAYCELL PaymentProvider = "PAYCELL" + PaymentProvider_HASO PaymentProvider = "HASO" + PaymentProvider_MULTINET PaymentProvider = "MULTINET" + PaymentProvider_YKB_WORLD_PAY_SHOPPING_LOAN PaymentProvider = "YKB_WORLD_PAY_SHOPPING_LOAN" + PaymentProvider_ZIP PaymentProvider = "ZIP" + PaymentProvider_CHIPPIN PaymentProvider = "CHIPPIN" + PaymentProvider_ISPAY PaymentProvider = "ISPAY" + PaymentProvider_OFFLINE PaymentProvider = "OFFLINE" ) // pos apm payment provider declaration