From ccf16c240d93509e89f9c2c55dedbd8b5e63c8bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=BDubom=C3=ADr=20Samotn=C3=BD?= Date: Tue, 6 May 2025 17:27:51 +0200 Subject: [PATCH 1/7] feat(php): add PHP documentation and code samples --- code_samples/php/v1.0.0/cancel_payment.php | 10 + code_samples/php/v1.0.0/chargeback.php | 15 ++ .../confirm_cancel_pre_authorization.php | 21 +++ code_samples/php/v1.0.0/create_payment.php | 61 ++++++ .../php/v1.0.0/create_payment_direct.php | 1 + .../create_payment_pre_authorization.php | 29 +++ .../v1.0.0/get_available_payment_methods.php | 13 ++ .../php/v1.0.0/get_payment_status.php | 16 ++ code_samples/php/v1.0.0/set_colors.php | 26 +++ code_samples/php/v1.0.0/set_logo.php | 13 ++ docs/libraries/php/v1.0.0/appearances.mdx | 34 ++++ .../php/v1.0.0/available_methods.mdx | 19 ++ docs/libraries/php/v1.0.0/cancel_payment.mdx | 13 ++ docs/libraries/php/v1.0.0/chargeback.mdx | 13 ++ docs/libraries/php/v1.0.0/create_payment.mdx | 175 ++++++++++++++++++ docs/libraries/php/v1.0.0/errors_handling.mdx | 47 +++++ .../libraries/php/v1.0.0/google_apple_pay.mdx | 14 ++ docs/libraries/php/v1.0.0/index.mdx | 16 ++ docs/libraries/php/v1.0.0/logging.mdx | 119 ++++++++++++ .../php/v1.0.0/pre_authorization.mdx | 25 +++ docs/libraries/php/v1.0.0/process_payment.mdx | 68 +++++++ docs/libraries/php/v1.0.0/save_card.mdx | 94 ++++++++++ .../python/v1.0.0/create_payment.mdx | 10 +- .../python/v1.0.0/google_apple_pay.mdx | 2 +- docs/libraries/python/v1.0.0/save_card.mdx | 2 +- docusaurus.config.js | 1 + sidebars.js | 15 +- 27 files changed, 864 insertions(+), 8 deletions(-) create mode 100644 code_samples/php/v1.0.0/cancel_payment.php create mode 100644 code_samples/php/v1.0.0/chargeback.php create mode 100644 code_samples/php/v1.0.0/confirm_cancel_pre_authorization.php create mode 100644 code_samples/php/v1.0.0/create_payment.php create mode 100644 code_samples/php/v1.0.0/create_payment_direct.php create mode 100644 code_samples/php/v1.0.0/create_payment_pre_authorization.php create mode 100644 code_samples/php/v1.0.0/get_available_payment_methods.php create mode 100644 code_samples/php/v1.0.0/get_payment_status.php create mode 100644 code_samples/php/v1.0.0/set_colors.php create mode 100644 code_samples/php/v1.0.0/set_logo.php create mode 100644 docs/libraries/php/v1.0.0/appearances.mdx create mode 100644 docs/libraries/php/v1.0.0/available_methods.mdx create mode 100644 docs/libraries/php/v1.0.0/cancel_payment.mdx create mode 100644 docs/libraries/php/v1.0.0/chargeback.mdx create mode 100644 docs/libraries/php/v1.0.0/create_payment.mdx create mode 100644 docs/libraries/php/v1.0.0/errors_handling.mdx create mode 100644 docs/libraries/php/v1.0.0/google_apple_pay.mdx create mode 100644 docs/libraries/php/v1.0.0/logging.mdx create mode 100644 docs/libraries/php/v1.0.0/pre_authorization.mdx create mode 100644 docs/libraries/php/v1.0.0/process_payment.mdx create mode 100644 docs/libraries/php/v1.0.0/save_card.mdx diff --git a/code_samples/php/v1.0.0/cancel_payment.php b/code_samples/php/v1.0.0/cancel_payment.php new file mode 100644 index 0000000..925276d --- /dev/null +++ b/code_samples/php/v1.0.0/cancel_payment.php @@ -0,0 +1,10 @@ +cancelPaymentIntent($payment_id); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/chargeback.php b/code_samples/php/v1.0.0/chargeback.php new file mode 100644 index 0000000..461e9b6 --- /dev/null +++ b/code_samples/php/v1.0.0/chargeback.php @@ -0,0 +1,15 @@ + CardPayUpdateInstruction::OPERATION_TYPE_CHARGEBACK, + "amount" => 3.0, +]); + +$response = $tatrapayplus_api->updatePaymentIntent($payment_id, $chargeback_data); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/confirm_cancel_pre_authorization.php b/code_samples/php/v1.0.0/confirm_cancel_pre_authorization.php new file mode 100644 index 0000000..5596d26 --- /dev/null +++ b/code_samples/php/v1.0.0/confirm_cancel_pre_authorization.php @@ -0,0 +1,21 @@ + CardPayUpdateInstruction::OPERATION_TYPE_CANCEL_PRE_AUTHORIZATION, +]); +$response = $tatrapayplus_api->updatePaymentIntent($payment_id, $pre_authorization_data); + +// or + +$pre_authorization_data = new CardPayUpdateInstruction([ + "operation_type" => CardPayUpdateInstruction::OPERATION_TYPE_CONFIRM_PRE_AUTHORIZATION, +]); +$response = $tatrapayplus_api->updatePaymentIntent($payment_id, $pre_authorization_data); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/create_payment.php b/code_samples/php/v1.0.0/create_payment.php new file mode 100644 index 0000000..bc6b501 --- /dev/null +++ b/code_samples/php/v1.0.0/create_payment.php @@ -0,0 +1,61 @@ + "TestStreet", + "building_number" => "12", + "town_name" => "Town", + "post_code" => "97405", + "country" => "SK", +]); +$initiate_payment_request = new Tatrapayplus\TatrapayplusApiClient\Model\InitiatePaymentRequest([ + "base_payment" => new Tatrapayplus\TatrapayplusApiClient\Model\BasePayment([ + "instructed_amount" => new Tatrapayplus\TatrapayplusApiClient\Model\Amount([ + "amount_value" => 10.0, + "currency" => "EUR", + ]), + "end_to_end" => new Tatrapayplus\TatrapayplusApiClient\Model\E2e([ + "variable_symbol" => "ORDER123456", + ]), + ]), + "bank_transfer" => new Tatrapayplus\TatrapayplusApiClient\Model\BankTransfer(), + "user_data" => new Tatrapayplus\TatrapayplusApiClient\Model\UserData([ + "first_name" => "Janko", + "last_name" => "Hrasko", + "email" => "janko.hrasko@example.com", + ]), + "card_detail" => new Tatrapayplus\TatrapayplusApiClient\Model\CardDetail([ + "card_holder" => "Janko Hrasko", + "billing_address" => $address, + "shipping_address" => $address, + ]), + "pay_later" => new Tatrapayplus\TatrapayplusApiClient\Model\PayLater([ + "order" => new Tatrapayplus\TatrapayplusApiClient\Model\Order([ + "order_no" => "ORDER123456", + "order_items" => [ + new Tatrapayplus\TatrapayplusApiClient\Model\OrderItem([ + "quantity" => 1.0, + "total_item_price" => 10.0, + "item_detail" => new Tatrapayplus\TatrapayplusApiClient\Model\ItemDetail([ + "item_detail_en" => new Tatrapayplus\TatrapayplusApiClient\Model\ItemDetailLangUnit([ + "item_name" => "Product 1", + ]), + "item_detail_sk" => new Tatrapayplus\TatrapayplusApiClient\Model\ItemDetailLangUnit([ + "item_name" => "Produkt 1", + ]), + ]), + ]), + ], + ]), + ]), +]); + +$response = $tatrapayplus_api->initiatePayment( + "redirect uri", + $initiate_payment_request, +); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/create_payment_direct.php b/code_samples/php/v1.0.0/create_payment_direct.php new file mode 100644 index 0000000..0ffdd02 --- /dev/null +++ b/code_samples/php/v1.0.0/create_payment_direct.php @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/code_samples/php/v1.0.0/create_payment_pre_authorization.php b/code_samples/php/v1.0.0/create_payment_pre_authorization.php new file mode 100644 index 0000000..4aca7f6 --- /dev/null +++ b/code_samples/php/v1.0.0/create_payment_pre_authorization.php @@ -0,0 +1,29 @@ + new Tatrapayplus\TatrapayplusApiClient\Model\BasePayment([ + "instructed_amount" => new Tatrapayplus\TatrapayplusApiClient\Model\Amount([ + "amount_value" => 10.0, + "currency" => "EUR", + ]), + "end_to_end" => new Tatrapayplus\TatrapayplusApiClient\Model\E2e([ + "variable_symbol" => "ORDER123456", + ]), + ]), + "bank_transfer" => new Tatrapayplus\TatrapayplusApiClient\Model\BankTransfer(), + "card_detail" => new Tatrapayplus\TatrapayplusApiClient\Model\CardDetail([ + "card_holder" => "Janko Hrasko", + "is_pre_authorization" => true, + ]), +]); + +$response = $tatrapayplus_api->initiatePayment( + "redirect uri", + $initiate_payment_request, +); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/get_available_payment_methods.php b/code_samples/php/v1.0.0/get_available_payment_methods.php new file mode 100644 index 0000000..442848e --- /dev/null +++ b/code_samples/php/v1.0.0/get_available_payment_methods.php @@ -0,0 +1,13 @@ +getAvailableMethods( + total_amount: 100, + currency: "EUR", + country: "SK" +); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/get_payment_status.php b/code_samples/php/v1.0.0/get_payment_status.php new file mode 100644 index 0000000..0ddff57 --- /dev/null +++ b/code_samples/php/v1.0.0/get_payment_status.php @@ -0,0 +1,16 @@ +getPaymentIntentStatus($payment_id); + +$response_obj = $response['object']; +$simple_status = $response_obj->getSimpleStatus(); +$status = $response_obj->getStatus(); +$payment_method = $response_obj->getSelectedPaymentMethod(); +$authorization_status = $response_obj->getAuthorizationStatus(); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/set_colors.php b/code_samples/php/v1.0.0/set_colors.php new file mode 100644 index 0000000..a3ee4bd --- /dev/null +++ b/code_samples/php/v1.0.0/set_colors.php @@ -0,0 +1,26 @@ + AppearanceRequest::THEME_SYSTEM, + "tint_on_accent" => new ColorAttribute([ + "color_dark_mode" => "#fff", + "color_light_mode" => "#fff", + ]), + "tint_accent" => new ColorAttribute([ + "color_dark_mode" => "#fff", + "color_light_mode" => "#fff", + ]), + "surface_accent" => new ColorAttribute([ + "color_dark_mode" => "#fff", + "color_light_mode" => "#fff", + ]), +]); + +$response = $tatrapayplus_api->setAppearance($appearance_request); \ No newline at end of file diff --git a/code_samples/php/v1.0.0/set_logo.php b/code_samples/php/v1.0.0/set_logo.php new file mode 100644 index 0000000..a01a59b --- /dev/null +++ b/code_samples/php/v1.0.0/set_logo.php @@ -0,0 +1,13 @@ + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII", +]); + +$response = $tatrapayplus_api->setLogo($logo_request); \ No newline at end of file diff --git a/docs/libraries/php/v1.0.0/appearances.mdx b/docs/libraries/php/v1.0.0/appearances.mdx new file mode 100644 index 0000000..5c0be24 --- /dev/null +++ b/docs/libraries/php/v1.0.0/appearances.mdx @@ -0,0 +1,34 @@ +import CodeBlock from '@theme/CodeBlock'; + +# Gateway appearances + +Payment gateway can have custom colors and logo. + +![Color guide](@site/docs/assets/color_guide_en.png) + +:::warning + +Gateway appearances can be change only in **PRODUCTION** mode. + +::: + +## Logo + +import setLogo from '!!raw-loader!@site/code_samples/php/v1.0.0/set_logo.php'; + +{setLogo} + +## Colors + +import setColors from '!!raw-loader!@site/code_samples/php/v1.0.0/set_colors.php'; + +{setColors} + + +:::tip + +Changes are reflected only in **new payments**. Refresh of page is not sufficient. + +::: + +