- Added support for
bank_transaction_id
parameter in PaymentBase and Transaction::Query classes - Added tests for
bank_transaction_id
functionality
- Simplified response handling in Client#post method
- Removed APIError class and related error handling
- Removed JSON parsing and status code validation for 200 responses
- Enhanced error handling by including full response data in APIError
- Added
response_data
attribute to APIError for accessing complete error details including bank error information
- Added dedicated 30-second timeout configuration for refund operations
- Enhanced Client class to support dynamic timeout parameter injection
- Refactored HTTP request timeout mechanism for better parameter flexibility
- Fixed Transaction Query response handling to accept status code 2 (no records found) as a valid response
- Made time parameter required in Transaction Query with proper validation
- Added documentation for Transaction Query API
- Added partner_key parameter to Transaction Query implementation
- Updated test coverage for Transaction Query
- Added partner_key parameter to Transaction Query implementation
- Made time parameter required in Transaction Query with proper validation
- Updated test coverage for Transaction Query
- Added documentation for Transaction Query API
- Made
amount
parameter optional in refund API - Improved refund API flexibility by allowing refunds without specifying amount
- Removed deprecated
vat_number
configuration option
- Removed deprecated
app_id
configuration option
- Enhanced Google Pay and Apple Pay implementations
- Improved test coverage for payment methods
- Enhanced validation for PayByToken payment data
- Improved handling of ccv_prime in InstallmentByToken
- Added currency as required parameter for PayByToken
- Improved test coverage for payment validation
- Enhanced Apple Pay and Line Pay implementations
- Improved code organization and readability
- Refactored refund functionality to be payment method agnostic
- Moved refund endpoint from CreditCard module to top level
- Simplified refund implementation for better maintainability
- Added RSpec test coverage for Google Pay implementation
- Added Apple Pay support with dedicated merchant ID handling
- Added support for Apple Pay payment processing
- Added comprehensive test coverage for Apple Pay implementation
- Made cardholder a required field for Line Pay and JKO Pay implementations
- Enhanced validation to ensure cardholder information (name, email, phone_number) is provided for these payment methods
- Improved test coverage to achieve 100% branch coverage
- Added test cases for result_url validation with nil values
- Enhanced test coverage for merchant ID handling in instalment payments
- Removed unnecessary
remember
parameter from LinePay and JkoPay implementations - Moved
payment_data
method to protected scope in payment classes for better encapsulation - Simplified LinePay implementation by removing redundant
by_prime
method - Improved code organization and reduced duplication in payment classes
- Updated instalment periods to support correct values: 0 (no instalment), 3, 6, 12, 18, 24, 30 months
- Fixed instalment validation in tests to match actual supported periods
- Removed support for 36 months instalment period
- Added support for
merchant_group_id
in payment processing - Added ability to use either
merchant_id
ormerchant_group_id
for merchant identification - Added support for 18 months instalment period
- Modified payment validation to accept either
merchant_id
ormerchant_group_id
- Updated configuration validation to support flexible merchant identification
- Improved payment data handling to prioritize
merchant_group_id
over all other merchant IDs - When
merchant_group_id
is set, it now takes precedence overline_pay_merchant_id
,jko_pay_merchant_id
, andinstalment_merchant_id
- Updated instalment validation to support periods: 0 (no instalment), 3, 6, 12, 18, 24, 30 months
- Enhanced error messages to clearly list all valid instalment options
- Improved instalment validation to only allow specific values: 0 (no instalment), 3, 6, 12, 18, 24, 30 months
- Enhanced error messages to clearly list all valid instalment options
- Updated tests to cover all valid and invalid instalment scenarios
- Added test coverage for all configuration options
- Added test coverage for all error cases
- Achieved 100% test coverage (both line and branch coverage)
- Improved test organization and descriptions
- Enhanced error handling test cases
- Added JKO Pay support
- New
JkoPay::Pay
class for processing JKO Pay payments - Added
jko_pay_merchant_id
configuration option - Added comprehensive test coverage for JKO Pay functionality
- New
- Set default instalment value to 0 (no instalment)
- Improved instalment validation to only allow specific values: 0 (no instalment), 3, 6, 12, 24, 30 months
- Enhanced error messages to clearly list all valid instalment options
- Updated tests to cover all valid and invalid instalment scenarios
- Fixed instalment validation to match TapPay's requirements
- Fixed test cases to reflect the new instalment validation rules
- Added support for payment-specific merchant IDs:
line_pay_merchant_id
for Line Pay transactionsinstalment_merchant_id
for instalment payments
- Added merchant ID fallback mechanism:
- Payment-specific merchant ID (if available)
- Default merchant ID
- Updated instalment validation to allow 3-30 months instead of 1-12
- Improved validation error messages for result_url
- Removed unused redirect_url endpoint from Payment module
- Improved code organization by removing redundant endpoints
- Added Line Pay support with dedicated payment flow
- Added Line Pay redirect URL handling
- Refactored payment endpoints structure:
- Moved common payment endpoints to a new
Payment
module - Separated payment-specific endpoints into their respective modules
- Improved code organization and reusability
- Moved common payment endpoints to a new
- Updated all payment classes to use the new endpoint structure
- Added validation for
result_url
in credit card payments - Required
result_url
with bothfrontend_redirect_url
andbackend_notify_url
for 3D Secure transactions - Required
result_url
with bothfrontend_redirect_url
andbackend_notify_url
for instalment payments
- Improved test coverage to 100% for both line and branch coverage
- Enhanced error messages for URL validation
- Removed
payment_url
from request parameters as it should only be handled in API response - Updated documentation to clarify
payment_url
usage in 3D Secure, LINE Pay, and JKO Pay scenarios
- Added support for
merchant_group_id
in payment requests (mutually exclusive withmerchant_id
) - Updated API version to v3
- Made
merchant_group_id
andmerchant_id
mutually exclusive, will raise error if both are provided - Requires either
merchant_id
ormerchant_group_id
to be set
- Changed
redirect_url
topayment_url
in payment data - Made
payment_url
optional in payment requests
- Enhanced transaction query response to include additional fields:
- records_per_page
- page
- total_page_count
- number_of_transactions
- Refactored payment and instalment classes to share common base class
- Unified payment endpoints for both regular and instalment payments
- Removed redundant endpoint URLs in favor of unified payment endpoints
- Made instalment parameter required for instalment payments (removed default value)
- Renamed endpoint methods to
payment_by_prime_url
andpayment_by_token_url
- Instalment payments now require explicit instalment parameter
- Removed default instalment value of 1
- Separated instalment endpoints for prime and token payments
- Added
instalment_by_prime_url
andinstalment_by_token_url
endpoints - Updated instalment classes to use their respective endpoints
- Fixed cardholder parameter validation in InstalmentByPrime
- Fixed cardholder parameter being added to payment data in InstalmentByPrime
- Fixed cardholder parameter being added to payment data in base class
- Fixed cardholder validation for instalment payments
- Fixed NoMethodError when cardholder is nil
- Fixed cardholder parameter being always included in payment data even when not provided
- Removed cardholder parameter from InstallmentByToken to match TapPay API requirements
- Added cardholder parameter requirement for InstallmentByToken to match TapPay API requirements
- Removed cardholder requirement from InstallmentByToken to match TapPay API requirements
- Fixed parameter name for cardholder in InstallmentBase class to match TapPay API requirements
- Fixed parameter name for cardholder in regular payments to match TapPay API requirements
- Fixed parameter name for cardholder in instalment payments to match TapPay API requirements
- Refactored instalment payment classes to have their own base class
- Removed dependency on PayBase class for instalment payments
- Simplified class hierarchy for better maintainability
- Removed unnecessary execute method from Instalment class
- Simplified class hierarchy for instalment payments
- Fixed inheritance structure of Instalment classes
- Added proper error message when trying to use Instalment class directly
- Updated InstalmentService to correctly use by_prime and by_token methods
- Added by_prime and by_token class methods to Instalment class
- Added execute method to Instalment class for handling instalment payments
- Fixed instalment payment handling in client applications
- Simplified PayByPrime and PayByToken execute methods to return raw response
- Updated response handling in client applications
- Refactored HTTP response handling in Client class
- Modified Client#post to return raw response object
- Added response parsing in PayByPrime and PayByToken execute methods
- Improved error handling with better separation of concerns
- Modified Pay.by_prime and Pay.by_token to return payment objects instead of executing them immediately
- This change allows more flexibility in payment flow control and better error handling
- Removed partner_key and merchant_id from required options validation as they should be taken from configuration
- Updated required fields validation for PayByPrime and PayByToken
- Added details as required field for both PayByPrime and PayByToken
- Made currency a required field for PayByToken and removed its default value
- Removed order_number from required fields
- Added app_id configuration option
- Fixed gem loading issue by using proper require_relative
- Added support for requiring gem as 'tappay'
- Added support for requiring gem as 'tappay_ruby'
- Updated GitHub Actions workflow for gem publishing
- Improved CardHolder handling in Pay class
- Added support for direct Hash input for cardholder information
- Updated README with comprehensive cardholder information examples
- Renamed
as_json
toto_h
in CardHolder class (keptas_json
as alias for backward compatibility)
- Added
CardHolder
class for managing cardholder information - Added environment-based endpoint management
- Added automatic sandbox/production URL switching
- Added comprehensive configuration options (direct, environment variables, Rails credentials)
- Improved README with detailed configuration examples
- Updated code documentation
- Reorganized endpoint URLs into a dedicated module
- Fixed endpoint URL handling in sandbox mode
- Improved error handling in configuration
- Initial release
- Basic TapPay integration
- Credit card payment support
- Refund processing
- Transaction queries
- Basic error handling