dana-python 1.1.1__tar.gz → 1.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dana_python-1.1.1 → dana_python-1.1.3}/PKG-INFO +3 -2
- {dana_python-1.1.1 → dana_python-1.1.3}/README.md +2 -1
- dana_python-1.1.3/dana/disbursement/v1/enum.py +28 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_bank_inquiry_status_response.py +1 -1
- dana_python-1.1.3/dana/merchant_management/v1/enum.py +110 -0
- {dana_python-1.1.1/dana/disbursement → dana_python-1.1.3/dana/payment_gateway}/v1/enum.py +27 -53
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/consult_pay_payment_info.py +3 -3
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/create_order_by_api_request.py +28 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/create_order_by_redirect_request.py +28 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/refund_option_bill.py +3 -3
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/enum.py +0 -27
- {dana_python-1.1.1 → dana_python-1.1.3}/dana_python.egg-info/PKG-INFO +3 -2
- {dana_python-1.1.1 → dana_python-1.1.3}/pyproject.toml +1 -1
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_payment_gateway_api.py +34 -1
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_payment_gateway_with_automation.py +12 -26
- dana_python-1.1.1/dana/merchant_management/v1/enum.py +0 -291
- dana_python-1.1.1/dana/payment_gateway/v1/enum.py +0 -107
- {dana_python-1.1.1 → dana_python-1.1.3}/LICENSE +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/api_client.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/api_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/base/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/base/configuration.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/base/model.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/base/types.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/api/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/api/disbursement_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/bank_account_inquiry_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/bank_account_inquiry_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/bank_account_inquiry_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/bank_account_inquiry_response_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/dana_account_inquiry_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/dana_account_inquiry_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/dana_account_inquiry_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/money.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_bank_inquiry_status_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_bank_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_bank_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_bank_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_dana_inquiry_status_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_dana_inquiry_status_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_dana_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_dana_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/disbursement/v1/models/transfer_to_dana_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/exceptions.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/api/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/api/merchant_management_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/address_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/business_docs.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_division_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_division_request_ext_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_division_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_division_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_division_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_division_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_shop_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_shop_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_shop_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_shop_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/create_shop_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/division_resource_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/merchant_resource_information.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/mobile_no_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/pic_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_division_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_division_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_division_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_division_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_division_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_merchant_resource_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_merchant_resource_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_merchant_resource_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_merchant_resource_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_merchant_resource_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_shop_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_shop_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_shop_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_shop_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/query_shop_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/result_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/shop_resource_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_division_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_division_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_division_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_division_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_division_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_shop_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_shop_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_shop_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/update_shop_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/merchant_management/v1/models/user_name.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/api/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/api/payment_gateway_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/actor_context.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/amount_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/audit_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/buyer.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/cancel_order_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/cancel_order_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/consult_pay_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/consult_pay_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/consult_pay_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/create_order_by_api_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/create_order_by_redirect_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/create_order_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/create_order_response_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/env_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/goods.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/money.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/order_api_object.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/order_redirect_object.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/pay_option_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/pay_option_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/pay_option_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/payment_view.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/promo_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/query_payment_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/query_payment_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/query_payment_response_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/refund_order_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/refund_order_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/refund_order_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/seller.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/shipping_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/status_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/time_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/url_param.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/virtual_account_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/rest.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/models.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/open_api_configuration.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/open_api_header.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/script.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/snap_configuration.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/snap_header.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/utils/url.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/finish_notify_payment_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/finish_notify_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/finish_notify_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/finish_notify_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/money.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/pay_option_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/shop_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/webhook/webhook.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/api/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/api/widget_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/__init__.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/account_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/account_unbinding_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/account_unbinding_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/account_unbinding_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/amount_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_ott_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_ott_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_ott_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_ott_response_user_resources_inner.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_token_authorization_code_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_token_refresh_token_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_token_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_token_response_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/apply_token_response_additional_info_user_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/balance_inquiry_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/balance_inquiry_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/balance_inquiry_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/buyer.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/cancel_order_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/cancel_order_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/env_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/goods.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/international_order_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/international_order_info_exchange_rate.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/money.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/oauth2_url_data.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/oauth2_url_data_seamless_data.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/order.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/pay_option_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/pay_option_detail_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/pay_option_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/payment_promo_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/payment_view.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_payment_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_payment_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_payment_response_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_user_profile_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_user_profile_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_user_profile_response_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_user_profile_response_response_body.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/query_user_profile_response_response_head.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/refund_order_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/refund_order_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/refund_order_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/refund_promo_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/result_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/seller.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/service_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/shipping_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/status_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/time_detail.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/url_param.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/user_resource_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/virtual_account_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/widget_payment_request.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/widget_payment_request_additional_info.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/models/widget_payment_response.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana/widget/v1/util.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana_python.egg-info/SOURCES.txt +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana_python.egg-info/dependency_links.txt +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana_python.egg-info/requires.txt +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/dana_python.egg-info/top_level.txt +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/setup.cfg +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_disbursement_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_merchant_management_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_webhook.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_widget_api.py +0 -0
- {dana_python-1.1.1 → dana_python-1.1.3}/tests/test_widget_with_automation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dana-python
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.3
|
|
4
4
|
Summary: API Client (SDK) for DANA APIs based on https://dashboard.dana.id/api-docs
|
|
5
5
|
Author-email: DANA Package Manager <package-manager@dana.id>
|
|
6
6
|
Maintainer-email: DANA Package Manager <package-manager@dana.id>
|
|
@@ -56,4 +56,5 @@ API | Description
|
|
|
56
56
|
------------- | -------------
|
|
57
57
|
[**PaymentGatewayApi**](docs/payment_gateway/v1/PaymentGatewayApi.md) | API for doing operations in DANA Payment Gateway (Gapura)
|
|
58
58
|
[**WidgetApi**](docs/widget/v1/WidgetApi.md) | API for enabling the user to make payment from merchant’s platform with redirecting to DANA’s platform
|
|
59
|
-
|
|
59
|
+
[**DisbursementApi**](docs/disbursement/v1/DisbursementApi.md) | API for doing operations in DANA Disbursement
|
|
60
|
+
[**MerchantManagementApi**](docs/merchant_management/v1/MerchantManagementApi.md) | API for doing operations in DANA Merchant Management
|
|
@@ -31,4 +31,5 @@ API | Description
|
|
|
31
31
|
------------- | -------------
|
|
32
32
|
[**PaymentGatewayApi**](docs/payment_gateway/v1/PaymentGatewayApi.md) | API for doing operations in DANA Payment Gateway (Gapura)
|
|
33
33
|
[**WidgetApi**](docs/widget/v1/WidgetApi.md) | API for enabling the user to make payment from merchant’s platform with redirecting to DANA’s platform
|
|
34
|
-
|
|
34
|
+
[**DisbursementApi**](docs/disbursement/v1/DisbursementApi.md) | API for doing operations in DANA Disbursement
|
|
35
|
+
[**MerchantManagementApi**](docs/merchant_management/v1/MerchantManagementApi.md) | API for doing operations in DANA Merchant Management
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Copyright 2025 PT Espay Debit Indonesia Koe
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
from enum import Enum
|
|
15
|
+
class ChargeTarget(str, Enum):
|
|
16
|
+
DIVISION = "DIVISION"
|
|
17
|
+
MERCHANT = "MERCHANT"
|
|
18
|
+
|
|
19
|
+
class LatestTransactionStatus(str, Enum):
|
|
20
|
+
N00 = "00"
|
|
21
|
+
N01 = "01"
|
|
22
|
+
N02 = "02"
|
|
23
|
+
N03 = "03"
|
|
24
|
+
N04 = "04"
|
|
25
|
+
N05 = "05"
|
|
26
|
+
N06 = "06"
|
|
27
|
+
N07 = "07"
|
|
28
|
+
|
|
@@ -53,7 +53,7 @@ class TransferToBankInquiryStatusResponse(BaseModel, BaseSdkModel):
|
|
|
53
53
|
original_external_id: Optional[Annotated[str, Field(strict=True, max_length=36)]] = Field(default=None, description="Original external identifier on header message")
|
|
54
54
|
service_code: Annotated[str, Field(strict=True, max_length=2)] = Field(description="Transaction type indicator is based on the service code of the original transaction request, value always 00")
|
|
55
55
|
amount: Optional[Money] = Field(default=None, description="Amount. Contains two sub-fields:<br> 1. Value: Transaction amount, including the cents<br> 2. Currency: Currency code based on ISO ")
|
|
56
|
-
latest_transaction_status: Annotated[str, Field(strict=True, max_length=2)] = Field(description="Status of latest transaction:<br> 00 - Success<br> 01 - Initiated<br> 02 - Paying<br> 03 - Pending<br> 04 - Refunded<br> 05 -
|
|
56
|
+
latest_transaction_status: Annotated[str, Field(strict=True, max_length=2)] = Field(description="Status of latest transaction:<br> 00 - Success<br> 01 - Initiated<br> 02 - Paying<br> 03 - Pending<br> 04 - Refunded<br> 05 - Cancelled<br> 06 - Failed<br> 07 - Not found ")
|
|
57
57
|
transaction_status_desc: Optional[Annotated[str, Field(strict=True, max_length=50)]] = Field(default=None, description="Description of transaction status")
|
|
58
58
|
additional_info: Optional[Dict[str, Any]] = Field(default=None, description="Additional information")
|
|
59
59
|
__properties: ClassVar[List[str]] = ["responseCode", "responseMessage", "originalPartnerReferenceNo", "originalReferenceNo", "originalExternalId", "serviceCode", "amount", "latestTransactionStatus", "transactionStatusDesc", "additionalInfo"]
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Copyright 2025 PT Espay Debit Indonesia Koe
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
from enum import Enum
|
|
15
|
+
class ShopParentType(str, Enum):
|
|
16
|
+
MERCHANT = "MERCHANT"
|
|
17
|
+
DIVISION = "DIVISION"
|
|
18
|
+
EXTERNAL_DIVISION = "EXTERNAL_DIVISION"
|
|
19
|
+
|
|
20
|
+
class SizeType(str, Enum):
|
|
21
|
+
UMI = "UMI"
|
|
22
|
+
UKE = "UKE"
|
|
23
|
+
UME = "UME"
|
|
24
|
+
UBE = "UBE"
|
|
25
|
+
|
|
26
|
+
class Loyalty(str, Enum):
|
|
27
|
+
TRUE = "true"
|
|
28
|
+
FALSE = "false"
|
|
29
|
+
|
|
30
|
+
class BusinessEntity(str, Enum):
|
|
31
|
+
PT = "pt"
|
|
32
|
+
CV = "cv"
|
|
33
|
+
INDIVIDU = "individu"
|
|
34
|
+
USAHA_DAGANG = "usaha_dagang"
|
|
35
|
+
YAYASAN = "yayasan"
|
|
36
|
+
KOPERASI = "koperasi"
|
|
37
|
+
|
|
38
|
+
class OwnerIdType(str, Enum):
|
|
39
|
+
KTP = "KTP"
|
|
40
|
+
SIM = "SIM"
|
|
41
|
+
PASSPORT = "PASSPORT"
|
|
42
|
+
SIUP = "SIUP"
|
|
43
|
+
NIB = "NIB"
|
|
44
|
+
|
|
45
|
+
class ShopOwning(str, Enum):
|
|
46
|
+
DIRECT_OWNED = "DIRECT_OWNED"
|
|
47
|
+
FRANCHISED = "FRANCHISED"
|
|
48
|
+
|
|
49
|
+
class ShopIdType(str, Enum):
|
|
50
|
+
INNER_ID = "INNER_ID"
|
|
51
|
+
EXTERNAL_ID = "EXTERNAL_ID"
|
|
52
|
+
|
|
53
|
+
class ParentRoleType(str, Enum):
|
|
54
|
+
MERCHANT = "MERCHANT"
|
|
55
|
+
DIVISION = "DIVISION"
|
|
56
|
+
EXTERNAL_DIVISION = "EXTERNAL_DIVISION"
|
|
57
|
+
|
|
58
|
+
class DivisionType(str, Enum):
|
|
59
|
+
REGION = "REGION"
|
|
60
|
+
AREA = "AREA"
|
|
61
|
+
BRANCH = "BRANCH"
|
|
62
|
+
OUTLET = "OUTLET"
|
|
63
|
+
STORE = "STORE"
|
|
64
|
+
KIOSK = "KIOSK"
|
|
65
|
+
STALL = "STALL"
|
|
66
|
+
COUNTER = "COUNTER"
|
|
67
|
+
BOOTH = "BOOTH"
|
|
68
|
+
POINT_OF_SALE = "POINT_OF_SALE"
|
|
69
|
+
VENDING_MACHINE = "VENDING_MACHINE"
|
|
70
|
+
|
|
71
|
+
class GOODSSOLDTYPE(str, Enum):
|
|
72
|
+
DIGITAL = "DIGITAL"
|
|
73
|
+
PHYSICAL = "PHYSICAL"
|
|
74
|
+
|
|
75
|
+
class USERPROFILING(str, Enum):
|
|
76
|
+
B2B = "B2B"
|
|
77
|
+
B2C = "B2C"
|
|
78
|
+
|
|
79
|
+
class PgDivisionFlag(str, Enum):
|
|
80
|
+
TRUE = "true"
|
|
81
|
+
FALSE = "false"
|
|
82
|
+
|
|
83
|
+
class DivisionIdType(str, Enum):
|
|
84
|
+
INNER_ID = "INNER_ID"
|
|
85
|
+
EXTERNAL_ID = "EXTERNAL_ID"
|
|
86
|
+
|
|
87
|
+
class ResourceType(str, Enum):
|
|
88
|
+
MERCHANT_DEPOSIT_BALANCE = "MERCHANT_DEPOSIT_BALANCE"
|
|
89
|
+
MERCHANT_AVAILABLE_BALANCE = "MERCHANT_AVAILABLE_BALANCE"
|
|
90
|
+
MERCHANT_TOTAL_BALANCE = "MERCHANT_TOTAL_BALANCE"
|
|
91
|
+
|
|
92
|
+
class Verified(str, Enum):
|
|
93
|
+
TRUE = "true"
|
|
94
|
+
FALSE = "false"
|
|
95
|
+
|
|
96
|
+
class DocType(str, Enum):
|
|
97
|
+
KTP = "KTP"
|
|
98
|
+
SIM = "SIM"
|
|
99
|
+
SIUP = "SIUP"
|
|
100
|
+
NIB = "NIB"
|
|
101
|
+
|
|
102
|
+
class ResultStatus(str, Enum):
|
|
103
|
+
S = "S"
|
|
104
|
+
F = "F"
|
|
105
|
+
U = "U"
|
|
106
|
+
|
|
107
|
+
class ShopBizType(str, Enum):
|
|
108
|
+
ONLINE = "ONLINE"
|
|
109
|
+
OFFLINE = "OFFLINE"
|
|
110
|
+
|
|
@@ -11,44 +11,7 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
15
14
|
from enum import Enum
|
|
16
|
-
|
|
17
|
-
class LatestTransactionStatus(str, Enum):
|
|
18
|
-
00 = "00"
|
|
19
|
-
01 = "01"
|
|
20
|
-
02 = "02"
|
|
21
|
-
03 = "03"
|
|
22
|
-
04 = "04"
|
|
23
|
-
05 = "05"
|
|
24
|
-
06 = "06"
|
|
25
|
-
07 = "07"
|
|
26
|
-
|
|
27
|
-
class LatestTransactionStatus(str, Enum):
|
|
28
|
-
00 = "00"
|
|
29
|
-
01 = "01"
|
|
30
|
-
02 = "02"
|
|
31
|
-
03 = "03"
|
|
32
|
-
04 = "04"
|
|
33
|
-
05 = "05"
|
|
34
|
-
06 = "06"
|
|
35
|
-
07 = "07"
|
|
36
|
-
|
|
37
|
-
class SourcePlatform(str, Enum):
|
|
38
|
-
IPG = "IPG"
|
|
39
|
-
|
|
40
|
-
class TerminalType(str, Enum):
|
|
41
|
-
APP = "APP"
|
|
42
|
-
WEB = "WEB"
|
|
43
|
-
WAP = "WAP"
|
|
44
|
-
SYSTEM = "SYSTEM"
|
|
45
|
-
|
|
46
|
-
class OrderTerminalType(str, Enum):
|
|
47
|
-
APP = "APP"
|
|
48
|
-
WEB = "WEB"
|
|
49
|
-
WAP = "WAP"
|
|
50
|
-
SYSTEM = "SYSTEM"
|
|
51
|
-
|
|
52
15
|
class PayMethod(str, Enum):
|
|
53
16
|
BALANCE = "BALANCE"
|
|
54
17
|
COUPON = "COUPON"
|
|
@@ -64,19 +27,6 @@ class PayMethod(str, Enum):
|
|
|
64
27
|
NETWORK_PAY = "NETWORK_PAY"
|
|
65
28
|
CARD = "CARD"
|
|
66
29
|
|
|
67
|
-
class PayMethod(str, Enum):
|
|
68
|
-
BALANCE = "BALANCE"
|
|
69
|
-
COUPON = "COUPON"
|
|
70
|
-
NET_BANKING = "NET_BANKING"
|
|
71
|
-
CREDIT_CARD = "CREDIT_CARD"
|
|
72
|
-
DEBIT_CARD = "DEBIT_CARD"
|
|
73
|
-
VIRTUAL_ACCOUNT = "VIRTUAL_ACCOUNT"
|
|
74
|
-
OTC = "OTC"
|
|
75
|
-
DIRECT_DEBIT_CREDIT_CARD = "DIRECT_DEBIT_CREDIT_CARD"
|
|
76
|
-
DIRECT_DEBIT_DEBIT_CARD = "DIRECT_DEBIT_DEBIT_CARD"
|
|
77
|
-
ONLINE_CREDIT = "ONLINE_CREDIT"
|
|
78
|
-
LOAN_CREDIT = "LOAN_CREDIT"
|
|
79
|
-
|
|
80
30
|
class PayOption(str, Enum):
|
|
81
31
|
NETWORK_PAY_PG_SPAY = "NETWORK_PAY_PG_SPAY"
|
|
82
32
|
NETWORK_PAY_PG_OVO = "NETWORK_PAY_PG_OVO"
|
|
@@ -91,9 +41,13 @@ class PayOption(str, Enum):
|
|
|
91
41
|
VIRTUAL_ACCOUNT_CIMB = "VIRTUAL_ACCOUNT_CIMB"
|
|
92
42
|
VIRTUAL_ACCOUNT_PERMATA = "VIRTUAL_ACCOUNT_PERMATA"
|
|
93
43
|
|
|
94
|
-
class
|
|
95
|
-
|
|
96
|
-
|
|
44
|
+
class AcquirementStatus(str, Enum):
|
|
45
|
+
INIT = "INIT"
|
|
46
|
+
SUCCESS = "SUCCESS"
|
|
47
|
+
CLOSED = "CLOSED"
|
|
48
|
+
PAYING = "PAYING"
|
|
49
|
+
MERCHANT_ACCEPT = "MERCHANT_ACCEPT"
|
|
50
|
+
CANCELLED = "CANCELLED"
|
|
97
51
|
|
|
98
52
|
class ActorType(str, Enum):
|
|
99
53
|
USER = "USER"
|
|
@@ -101,3 +55,23 @@ class ActorType(str, Enum):
|
|
|
101
55
|
MERCHANT_OPERATOR = "MERCHANT_OPERATOR"
|
|
102
56
|
BACK_OFFICE = "BACK_OFFICE"
|
|
103
57
|
SYSTEM = "SYSTEM"
|
|
58
|
+
|
|
59
|
+
class SourcePlatform(str, Enum):
|
|
60
|
+
IPG = "IPG"
|
|
61
|
+
|
|
62
|
+
class TerminalType(str, Enum):
|
|
63
|
+
APP = "APP"
|
|
64
|
+
WEB = "WEB"
|
|
65
|
+
WAP = "WAP"
|
|
66
|
+
SYSTEM = "SYSTEM"
|
|
67
|
+
|
|
68
|
+
class OrderTerminalType(str, Enum):
|
|
69
|
+
APP = "APP"
|
|
70
|
+
WEB = "WEB"
|
|
71
|
+
WAP = "WAP"
|
|
72
|
+
SYSTEM = "SYSTEM"
|
|
73
|
+
|
|
74
|
+
class Type(str, Enum):
|
|
75
|
+
PAY_RETURN = "PAY_RETURN"
|
|
76
|
+
NOTIFICATION = "NOTIFICATION"
|
|
77
|
+
|
{dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/consult_pay_payment_info.py
RENAMED
|
@@ -46,7 +46,7 @@ class ConsultPayPaymentInfo(BaseModel, BaseSdkModel):
|
|
|
46
46
|
"""
|
|
47
47
|
ConsultPayPaymentInfo
|
|
48
48
|
""" # noqa: E501
|
|
49
|
-
pay_method: Annotated[str, Field(strict=True, max_length=64)] = Field(description="Payment method that used to payment. The enums:<br> * BALANCE - Payment method with balance<br> * COUPON - Payment method with coupon<br> * NET_BANKING - Payment method with internet banking<br> * CREDIT_CARD - Payment method with credit card<br> * DEBIT_CARD - Payment method with debit card<br> * VIRTUAL_ACCOUNT - Payment method with virtual account<br> * OTC - Payment method with OTC<br> * DIRECT_DEBIT_CREDIT_CARD - Payment method with direct debit of credit card<br> * DIRECT_DEBIT_DEBIT_CARD - Payment method with direct debit of debit card<br> * ONLINE_CREDIT - Payment method with online Credit<br> * LOAN_CREDIT - Payment method with DANA Cicil<br> * NETWORK_PAY - Payment method with e-wallet<br> ")
|
|
49
|
+
pay_method: Annotated[str, Field(strict=True, max_length=64)] = Field(description="Payment method that used to payment. The enums:<br> * BALANCE - Payment method with balance<br> * COUPON - Payment method with coupon<br> * NET_BANKING - Payment method with internet banking<br> * CREDIT_CARD - Payment method with credit card<br> * DEBIT_CARD - Payment method with debit card<br> * VIRTUAL_ACCOUNT - Payment method with virtual account<br> * OTC - Payment method with OTC<br> * DIRECT_DEBIT_CREDIT_CARD - Payment method with direct debit of credit card<br> * DIRECT_DEBIT_DEBIT_CARD - Payment method with direct debit of debit card<br> * ONLINE_CREDIT - Payment method with online Credit<br> * LOAN_CREDIT - Payment method with DANA Cicil<br> * NETWORK_PAY - Payment method with e-wallet<br> * CARD - Payment method with card<br> ")
|
|
50
50
|
pay_option: Optional[Annotated[str, Field(strict=True, max_length=128)]] = Field(default=None, description="Payment option that available to used to payment, depends on the payment method. The enums:<br> * NETWORK_PAY_PG_SPAY - Payment method with ShopeePay e-wallet<br> * NETWORK_PAY_PG_OVO - Payment method with OVO e-wallet<br> * NETWORK_PAY_PG_GOPAY - Payment method with GoPay e-wallet<br> * NETWORK_PAY_PG_LINKAJA - Payment method with LinkAja e-wallet<br> * NETWORK_PAY_PG_CARD - Payment method with Card<br> * VIRTUAL_ACCOUNT_BCA - Payment method with BCA virtual account<br> * VIRTUAL_ACCOUNT_BNI - Payment method with BNI virtual account<br> * VIRTUAL_ACCOUNT_MANDIRI - Payment method with Mandiri virtual account<br> * VIRTUAL_ACCOUNT_BRI - Payment method with BRI virtual account<br> * VIRTUAL_ACCOUNT_BTPN - Payment method with BTPN virtual account<br> * VIRTUAL_ACCOUNT_CIMB - Payment method with CIMB virtual account<br> * VIRTUAL_ACCOUNT_PERMATA - Payment method with Permata virtual account<br> ")
|
|
51
51
|
promo_infos: Optional[List[PromoInfo]] = Field(default=None, description="Additional Information of promotion")
|
|
52
52
|
__properties: ClassVar[List[str]] = ["payMethod", "payOption", "promoInfos"]
|
|
@@ -56,8 +56,8 @@ class ConsultPayPaymentInfo(BaseModel, BaseSdkModel):
|
|
|
56
56
|
"""Validates the enum"""
|
|
57
57
|
if value == "":
|
|
58
58
|
return value
|
|
59
|
-
if value not in set(['BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT', 'NETWORK_PAY']):
|
|
60
|
-
raise ValueError("must be one of enum values ('BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT', 'NETWORK_PAY')")
|
|
59
|
+
if value not in set(['BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT', 'NETWORK_PAY', 'CARD']):
|
|
60
|
+
raise ValueError("must be one of enum values ('BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT', 'NETWORK_PAY', 'CARD')")
|
|
61
61
|
return value
|
|
62
62
|
|
|
63
63
|
@field_validator('pay_option')
|
|
@@ -71,6 +71,34 @@ class CreateOrderByApiRequest(BaseModel, BaseSdkModel):
|
|
|
71
71
|
raise ValueError(r"must validate the regular expression /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+07:00$/")
|
|
72
72
|
return value
|
|
73
73
|
|
|
74
|
+
@field_validator('valid_up_to')
|
|
75
|
+
def valid_up_to_validate_date_range(cls, value):
|
|
76
|
+
"""Validates that date is not more than one week in the future"""
|
|
77
|
+
import datetime
|
|
78
|
+
|
|
79
|
+
if value is None:
|
|
80
|
+
return value
|
|
81
|
+
|
|
82
|
+
try:
|
|
83
|
+
jakarta_tz = datetime.timezone(datetime.timedelta(hours=7))
|
|
84
|
+
|
|
85
|
+
current_date = datetime.datetime.now(jakarta_tz)
|
|
86
|
+
|
|
87
|
+
max_date = current_date + datetime.timedelta(days=7)
|
|
88
|
+
|
|
89
|
+
date_part = value[:-6]
|
|
90
|
+
input_date = datetime.datetime.fromisoformat(date_part).replace(tzinfo=jakarta_tz)
|
|
91
|
+
|
|
92
|
+
if input_date > max_date:
|
|
93
|
+
raise ValueError('Date cannot be more than one week in the future')
|
|
94
|
+
|
|
95
|
+
return value
|
|
96
|
+
|
|
97
|
+
except ValueError as e:
|
|
98
|
+
if 'week' in str(e):
|
|
99
|
+
raise
|
|
100
|
+
raise ValueError('Invalid date format. Expected format: YYYY-MM-DDTHH:mm:ss+07:00')
|
|
101
|
+
|
|
74
102
|
model_config = ConfigDict(
|
|
75
103
|
populate_by_name=True,
|
|
76
104
|
validate_assignment=True,
|
|
@@ -69,6 +69,34 @@ class CreateOrderByRedirectRequest(BaseModel, BaseSdkModel):
|
|
|
69
69
|
raise ValueError(r"must validate the regular expression /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+07:00$/")
|
|
70
70
|
return value
|
|
71
71
|
|
|
72
|
+
@field_validator('valid_up_to')
|
|
73
|
+
def valid_up_to_validate_date_range(cls, value):
|
|
74
|
+
"""Validates that date is not more than one week in the future"""
|
|
75
|
+
import datetime
|
|
76
|
+
|
|
77
|
+
if value is None:
|
|
78
|
+
return value
|
|
79
|
+
|
|
80
|
+
try:
|
|
81
|
+
jakarta_tz = datetime.timezone(datetime.timedelta(hours=7))
|
|
82
|
+
|
|
83
|
+
current_date = datetime.datetime.now(jakarta_tz)
|
|
84
|
+
|
|
85
|
+
max_date = current_date + datetime.timedelta(days=7)
|
|
86
|
+
|
|
87
|
+
date_part = value[:-6]
|
|
88
|
+
input_date = datetime.datetime.fromisoformat(date_part).replace(tzinfo=jakarta_tz)
|
|
89
|
+
|
|
90
|
+
if input_date > max_date:
|
|
91
|
+
raise ValueError('Date cannot be more than one week in the future')
|
|
92
|
+
|
|
93
|
+
return value
|
|
94
|
+
|
|
95
|
+
except ValueError as e:
|
|
96
|
+
if 'week' in str(e):
|
|
97
|
+
raise
|
|
98
|
+
raise ValueError('Invalid date format. Expected format: YYYY-MM-DDTHH:mm:ss+07:00')
|
|
99
|
+
|
|
72
100
|
model_config = ConfigDict(
|
|
73
101
|
populate_by_name=True,
|
|
74
102
|
validate_assignment=True,
|
{dana_python-1.1.1 → dana_python-1.1.3}/dana/payment_gateway/v1/models/refund_option_bill.py
RENAMED
|
@@ -46,7 +46,7 @@ class RefundOptionBill(BaseModel, BaseSdkModel):
|
|
|
46
46
|
"""
|
|
47
47
|
RefundOptionBill
|
|
48
48
|
""" # noqa: E501
|
|
49
|
-
pay_method: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="Payment method name. The enums:<br> * BALANCE - Payment method with balance<br> * COUPON - Payment method with coupon<br> * NET_BANKING - Payment method with internet banking<br> * CREDIT_CARD - Payment method with credit card<br> * DEBIT_CARD - Payment method with debit card<br> * VIRTUAL_ACCOUNT - Payment method with virtual account<br> * OTC - Payment method with OTC<br> * DIRECT_DEBIT_CREDIT_CARD - Payment method with direct debit of credit card<br> * DIRECT_DEBIT_DEBIT_CARD - Payment method with direct debit of debit card<br> * ONLINE_CREDIT - Payment method with online Credit<br> * LOAN_CREDIT - Payment method with DANA Cicil<br> ")
|
|
49
|
+
pay_method: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="Payment method name. The enums:<br> * BALANCE - Payment method with balance<br> * COUPON - Payment method with coupon<br> * NET_BANKING - Payment method with internet banking<br> * CREDIT_CARD - Payment method with credit card<br> * DEBIT_CARD - Payment method with debit card<br> * VIRTUAL_ACCOUNT - Payment method with virtual account<br> * OTC - Payment method with OTC<br> * DIRECT_DEBIT_CREDIT_CARD - Payment method with direct debit of credit card<br> * DIRECT_DEBIT_DEBIT_CARD - Payment method with direct debit of debit card<br> * ONLINE_CREDIT - Payment method with online Credit<br> * LOAN_CREDIT - Payment method with DANA Cicil<br> * NETWORK_PAY - Payment method with e-wallet<br> * CARD - Payment method with card<br> ")
|
|
50
50
|
trans_amount: Optional[Money] = Field(default=None, description="Trans amount. Contains two sub-fields:<br> 1. Value: Transaction amount, including the cents<br> 2. Currency: Currency code based on ISO<br> ")
|
|
51
51
|
__properties: ClassVar[List[str]] = ["payMethod", "transAmount"]
|
|
52
52
|
|
|
@@ -56,8 +56,8 @@ class RefundOptionBill(BaseModel, BaseSdkModel):
|
|
|
56
56
|
if not value:
|
|
57
57
|
return value
|
|
58
58
|
|
|
59
|
-
if value not in set(['BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT']):
|
|
60
|
-
raise ValueError("must be one of enum values ('BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT')")
|
|
59
|
+
if value not in set(['BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT', 'NETWORK_PAY', 'CARD']):
|
|
60
|
+
raise ValueError("must be one of enum values ('BALANCE', 'COUPON', 'NET_BANKING', 'CREDIT_CARD', 'DEBIT_CARD', 'VIRTUAL_ACCOUNT', 'OTC', 'DIRECT_DEBIT_CREDIT_CARD', 'DIRECT_DEBIT_DEBIT_CARD', 'ONLINE_CREDIT', 'LOAN_CREDIT', 'NETWORK_PAY', 'CARD')")
|
|
61
61
|
return value
|
|
62
62
|
|
|
63
63
|
model_config = ConfigDict(
|
|
@@ -11,9 +11,7 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
15
14
|
from enum import Enum
|
|
16
|
-
|
|
17
15
|
class ServiceType(str, Enum):
|
|
18
16
|
PARKING = "PARKING"
|
|
19
17
|
INVESTMENT = "INVESTMENT"
|
|
@@ -29,12 +27,6 @@ class PromoType(str, Enum):
|
|
|
29
27
|
VOUCHER = "VOUCHER"
|
|
30
28
|
POINT = "POINT"
|
|
31
29
|
|
|
32
|
-
class PromoType(str, Enum):
|
|
33
|
-
CASH_BACK = "CASH_BACK"
|
|
34
|
-
DISCOUNT = "DISCOUNT"
|
|
35
|
-
VOUCHER = "VOUCHER"
|
|
36
|
-
POINT = "POINT"
|
|
37
|
-
|
|
38
30
|
class AcquirementStatus(str, Enum):
|
|
39
31
|
INIT = "INIT"
|
|
40
32
|
SUCCESS = "SUCCESS"
|
|
@@ -90,19 +82,6 @@ class PayMethod(str, Enum):
|
|
|
90
82
|
NETWORK_PAY = "NETWORK_PAY"
|
|
91
83
|
CARD = "CARD"
|
|
92
84
|
|
|
93
|
-
class PayMethod(str, Enum):
|
|
94
|
-
BALANCE = "BALANCE"
|
|
95
|
-
COUPON = "COUPON"
|
|
96
|
-
NET_BANKING = "NET_BANKING"
|
|
97
|
-
CREDIT_CARD = "CREDIT_CARD"
|
|
98
|
-
DEBIT_CARD = "DEBIT_CARD"
|
|
99
|
-
VIRTUAL_ACCOUNT = "VIRTUAL_ACCOUNT"
|
|
100
|
-
OTC = "OTC"
|
|
101
|
-
DIRECT_DEBIT_CREDIT_CARD = "DIRECT_DEBIT_CREDIT_CARD"
|
|
102
|
-
DIRECT_DEBIT_DEBIT_CARD = "DIRECT_DEBIT_DEBIT_CARD"
|
|
103
|
-
ONLINE_CREDIT = "ONLINE_CREDIT"
|
|
104
|
-
LOAN_CREDIT = "LOAN_CREDIT"
|
|
105
|
-
|
|
106
85
|
class PayOption(str, Enum):
|
|
107
86
|
NETWORK_PAY_PG_SPAY = "NETWORK_PAY_PG_SPAY"
|
|
108
87
|
NETWORK_PAY_PG_OVO = "NETWORK_PAY_PG_OVO"
|
|
@@ -121,9 +100,3 @@ class Type(str, Enum):
|
|
|
121
100
|
PAY_RETURN = "PAY_RETURN"
|
|
122
101
|
NOTIFICATION = "NOTIFICATION"
|
|
123
102
|
|
|
124
|
-
class ActorType(str, Enum):
|
|
125
|
-
USER = "USER"
|
|
126
|
-
MERCHANT = "MERCHANT"
|
|
127
|
-
MERCHANT_OPERATOR = "MERCHANT_OPERATOR"
|
|
128
|
-
BACK_OFFICE = "BACK_OFFICE"
|
|
129
|
-
SYSTEM = "SYSTEM"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dana-python
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.3
|
|
4
4
|
Summary: API Client (SDK) for DANA APIs based on https://dashboard.dana.id/api-docs
|
|
5
5
|
Author-email: DANA Package Manager <package-manager@dana.id>
|
|
6
6
|
Maintainer-email: DANA Package Manager <package-manager@dana.id>
|
|
@@ -56,4 +56,5 @@ API | Description
|
|
|
56
56
|
------------- | -------------
|
|
57
57
|
[**PaymentGatewayApi**](docs/payment_gateway/v1/PaymentGatewayApi.md) | API for doing operations in DANA Payment Gateway (Gapura)
|
|
58
58
|
[**WidgetApi**](docs/widget/v1/WidgetApi.md) | API for enabling the user to make payment from merchant’s platform with redirecting to DANA’s platform
|
|
59
|
-
|
|
59
|
+
[**DisbursementApi**](docs/disbursement/v1/DisbursementApi.md) | API for doing operations in DANA Disbursement
|
|
60
|
+
[**MerchantManagementApi**](docs/merchant_management/v1/MerchantManagementApi.md) | API for doing operations in DANA Merchant Management
|
|
@@ -19,7 +19,7 @@ from dana.rest import ApiException
|
|
|
19
19
|
from dana.webhook import WebhookParser
|
|
20
20
|
from dana.utils.snap_header import SnapHeader
|
|
21
21
|
# Import fixtures directly from their modules to avoid circular imports
|
|
22
|
-
from tests.fixtures.api_client import api_instance_payment_gateway
|
|
22
|
+
from tests.fixtures.api_client import api_instance_payment_gateway, api_instance_payment_gateway_with_key_path
|
|
23
23
|
from tests.fixtures.payment_gateway import consult_pay_request, create_order_by_api_request, query_payment_request, cancel_order_request, refund_order_request, webhook_key_pair
|
|
24
24
|
|
|
25
25
|
|
|
@@ -49,6 +49,13 @@ class TestPaymentGatewayApi:
|
|
|
49
49
|
|
|
50
50
|
assert hasattr(api_response_query_payment, 'response_code')
|
|
51
51
|
assert hasattr(api_response_query_payment, 'response_message')
|
|
52
|
+
|
|
53
|
+
def test_create_order_with_private_key_path(self, api_instance_payment_gateway_with_key_path: PaymentGatewayApi, create_order_by_api_request: CreateOrderByApiRequest):
|
|
54
|
+
"""Should successfully create an order using private key file path instead of key string"""
|
|
55
|
+
api_response = api_instance_payment_gateway_with_key_path.create_order(create_order_by_api_request)
|
|
56
|
+
|
|
57
|
+
assert api_response.response_code == '2005400'
|
|
58
|
+
assert api_response.response_message == 'Successful'
|
|
52
59
|
|
|
53
60
|
def test_cancel_order_success(self, api_instance_payment_gateway: PaymentGatewayApi, create_order_by_api_request: CreateOrderByApiRequest, cancel_order_request: CancelOrderRequest):
|
|
54
61
|
"""Should successfully cancel an order and return success response code"""
|
|
@@ -64,4 +71,30 @@ class TestPaymentGatewayApi:
|
|
|
64
71
|
assert api_response_cancel.response_code == '2005700'
|
|
65
72
|
assert api_response_cancel.response_message == 'Success'
|
|
66
73
|
assert api_response_cancel.original_partner_reference_no == cancel_order_request.original_partner_reference_no
|
|
74
|
+
|
|
75
|
+
def test_create_order_with_valid_up_to_outside_range(self, api_instance_payment_gateway: PaymentGatewayApi):
|
|
76
|
+
"""Should reject an order with valid_up_to more than one week in the future"""
|
|
77
|
+
|
|
78
|
+
# Import required modules
|
|
79
|
+
from datetime import datetime, timedelta, timezone
|
|
80
|
+
import pytest
|
|
81
|
+
import json
|
|
82
|
+
from tests.fixtures.payment_gateway import PaymentGatewayFixtures
|
|
83
|
+
|
|
84
|
+
# Get a base request from the fixtures
|
|
85
|
+
base_request = PaymentGatewayFixtures.get_create_order_by_api_request()
|
|
86
|
+
|
|
87
|
+
# Set valid_up_to to 8 days in the future (outside of allowed range)
|
|
88
|
+
jakarta_tz = timezone(timedelta(hours=7))
|
|
89
|
+
beyond_one_week = (datetime.now(jakarta_tz) + timedelta(days=8)).strftime("%Y-%m-%dT%H:%M:%S+07:00")
|
|
90
|
+
|
|
91
|
+
# Try to create an order with this invalid date
|
|
92
|
+
# The API should reject it with a specific error code
|
|
93
|
+
with pytest.raises(ValueError) as excinfo:
|
|
94
|
+
# Create a modified request with the invalid valid_up_to date
|
|
95
|
+
base_request.valid_up_to = beyond_one_week
|
|
96
|
+
|
|
97
|
+
# Check the error message contains expected text about the date range
|
|
98
|
+
error_msg = str(excinfo.value)
|
|
99
|
+
assert "week" in error_msg.lower() or "future" in error_msg.lower()
|
|
67
100
|
|
|
@@ -22,6 +22,7 @@ from dana.payment_gateway.v1.api import PaymentGatewayApi
|
|
|
22
22
|
from dana.payment_gateway.v1.models import (
|
|
23
23
|
ConsultPayRequest,
|
|
24
24
|
CreateOrderByApiRequest,
|
|
25
|
+
CreateOrderByRedirectRequest,
|
|
25
26
|
QueryPaymentRequest,
|
|
26
27
|
CancelOrderRequest,
|
|
27
28
|
RefundOrderRequest,
|
|
@@ -33,6 +34,7 @@ from tests.fixtures.payment_gateway import (
|
|
|
33
34
|
consult_pay_request,
|
|
34
35
|
create_order_by_api_request,
|
|
35
36
|
create_order_by_api_paid_request,
|
|
37
|
+
create_order_by_redirect_request,
|
|
36
38
|
query_payment_request,
|
|
37
39
|
cancel_order_request,
|
|
38
40
|
refund_order_request
|
|
@@ -43,7 +45,7 @@ from tests.web_automation import automate_payment_payment_gateway
|
|
|
43
45
|
class TestPaymentGatewayWithAutomation:
|
|
44
46
|
"""Test class for Payment Gateway API endpoints with browser automation"""
|
|
45
47
|
|
|
46
|
-
def
|
|
48
|
+
def test_complete_scenario(self, api_instance_payment_gateway: PaymentGatewayApi, create_order_by_redirect_request: CreateOrderByRedirectRequest):
|
|
47
49
|
"""Test RefundOrder operation with web automation
|
|
48
50
|
|
|
49
51
|
This test does the following:
|
|
@@ -57,26 +59,14 @@ class TestPaymentGatewayWithAutomation:
|
|
|
57
59
|
if not merchant_id:
|
|
58
60
|
pytest.skip("Skipping test: No API client credentials")
|
|
59
61
|
|
|
60
|
-
# Generate a unique partner reference number with timestamp and random
|
|
61
|
-
timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
|
|
62
|
-
random_suffix = str(uuid.uuid4())[:8]
|
|
63
|
-
partner_ref_no = f"PY-AUTO-{timestamp}-{random_suffix}"
|
|
64
|
-
|
|
65
|
-
# Get create order request from fixtures and update with unique reference number
|
|
66
|
-
create_order_request = create_order_by_api_paid_request()
|
|
67
|
-
create_order_request.partner_reference_no = partner_ref_no
|
|
68
|
-
create_order_request.merchant_id = merchant_id
|
|
69
|
-
|
|
70
|
-
print(f"Creating order for payment and refund test with partner ref: {partner_ref_no}")
|
|
71
|
-
|
|
72
62
|
try:
|
|
73
63
|
# Execute the create order API call
|
|
74
|
-
resp_create_order = api_instance_payment_gateway.create_order(
|
|
64
|
+
resp_create_order = api_instance_payment_gateway.create_order(create_order_by_redirect_request)
|
|
75
65
|
|
|
76
66
|
# Assertions for create order response
|
|
77
67
|
assert resp_create_order is not None
|
|
78
68
|
assert resp_create_order.web_redirect_url is not None
|
|
79
|
-
assert resp_create_order.partner_reference_no ==
|
|
69
|
+
assert resp_create_order.partner_reference_no == create_order_by_redirect_request.partner_reference_no
|
|
80
70
|
assert resp_create_order.reference_no is not None
|
|
81
71
|
|
|
82
72
|
# Store the reference number for refund
|
|
@@ -107,8 +97,8 @@ class TestPaymentGatewayWithAutomation:
|
|
|
107
97
|
|
|
108
98
|
# Get query payment request from fixtures
|
|
109
99
|
query_request = QueryPaymentRequest(
|
|
110
|
-
original_partner_reference_no=
|
|
111
|
-
service_code="
|
|
100
|
+
original_partner_reference_no=create_order_by_redirect_request.partner_reference_no,
|
|
101
|
+
service_code="54",
|
|
112
102
|
merchant_id=merchant_id
|
|
113
103
|
)
|
|
114
104
|
|
|
@@ -156,13 +146,12 @@ class TestPaymentGatewayWithAutomation:
|
|
|
156
146
|
|
|
157
147
|
# Create refund order request
|
|
158
148
|
refund_request = RefundOrderRequest(
|
|
159
|
-
original_partner_reference_no=
|
|
160
|
-
original_reference_no=ref_no,
|
|
149
|
+
original_partner_reference_no=create_order_by_redirect_request.partner_reference_no,
|
|
161
150
|
merchant_id=merchant_id,
|
|
162
|
-
partner_refund_no=
|
|
151
|
+
partner_refund_no=str(uuid.uuid4()),
|
|
163
152
|
refund_amount=Money(
|
|
164
|
-
value=
|
|
165
|
-
currency=
|
|
153
|
+
value=create_order_by_redirect_request.amount.value,
|
|
154
|
+
currency=create_order_by_redirect_request.amount.currency
|
|
166
155
|
),
|
|
167
156
|
reason="Python SDK Automation Test Refund"
|
|
168
157
|
)
|
|
@@ -174,9 +163,6 @@ class TestPaymentGatewayWithAutomation:
|
|
|
174
163
|
# Add assertions for successful refund response
|
|
175
164
|
assert resp_refund_order is not None
|
|
176
165
|
|
|
177
|
-
if hasattr(resp_refund_order, 'original_partner_reference_no'):
|
|
178
|
-
assert resp_refund_order.original_partner_reference_no == partner_ref_no
|
|
179
|
-
|
|
180
166
|
assert resp_refund_order.response_code is not None
|
|
181
167
|
|
|
182
168
|
if resp_refund_order.response_code:
|
|
@@ -193,6 +179,6 @@ class TestPaymentGatewayWithAutomation:
|
|
|
193
179
|
else:
|
|
194
180
|
pytest.fail(f"Refund request failed with unexpected error: {e}")
|
|
195
181
|
else:
|
|
196
|
-
pytest.
|
|
182
|
+
pytest.fail("Payment automation was not successful")
|
|
197
183
|
except Exception as e:
|
|
198
184
|
pytest.fail(f"Test failed: {e}")
|