Alipay SDK for Python

3.7.1098 · active · verified Thu Apr 16

The `alipay-sdk-python` library is the official Python SDK for integrating with Alipay's Open Platform APIs. It provides functionalities for various payment scenarios, including web, app, and QR code payments, as well as refund, query, and notification processing. Maintained by Alipay, it receives regular updates, typically several times a month, reflecting API changes and improvements. The current version is 3.7.1098.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize the Alipay client and create a basic web page payment request. It configures the client with essential keys and a sandbox server URL, then constructs a `AlipayTradePagePayRequest` to generate an HTML form string for redirecting the user to Alipay for payment. Remember to replace placeholder keys with your actual Alipay developer credentials and adjust the `server_url` for production.

import os
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest

# 1. Configuration (replace with your actual keys or use environment variables)
APP_ID = os.environ.get('ALIPAY_APP_ID', 'YOUR_APP_ID')
APP_PRIVATE_KEY = os.environ.get('ALIPAY_PRIVATE_KEY', 'YOUR_APP_PRIVATE_KEY')
ALIPAY_PUBLIC_KEY = os.environ.get('ALIPAY_ALIPAY_PUBLIC_KEY', 'YOUR_ALIPAY_PUBLIC_KEY')

alipay_client_config = AlipayClientConfig()
alipay_client_config.server_url = 'https://openapi.alipaydev.com/gateway.do' # Use 'https://openapi.alipay.com/gateway.do' for production
alipay_client_config.app_id = APP_ID
alipay_client_config.app_private_key = APP_PRIVATE_KEY
alipay_client_config.alipay_public_key = ALIPAY_PUBLIC_KEY
alipay_client_config.encrypt_type = 'AES' # Optional: set encryption type if needed

alipay_client = DefaultAlipayClient(alipay_client_config=alipay_client_config)

# 2. Prepare API Request
request = AlipayTradePagePayRequest()
request.biz_content = (
    '{"out_trade_no":"20230817010101001",'  # Your unique order ID
    '"total_amount":"88.88",'             # Total amount
    '"subject":"Test Product",'            # Product subject
    '"product_code":"FAST_INSTANT_TRADE_PAY"}'
)
request.return_url = 'http://localhost:8000/alipay/return' # URL for browser redirect after payment
request.notify_url = 'http://localhost:8000/alipay/notify' # URL for async server-to-server notification

# 3. Execute Request and get payment form
try:
    # page_execute returns an HTML form string for browser redirection
    response_html = alipay_client.page_execute(request=request)
    print("Payment HTML form generated successfully:")
    print(response_html) # In a web app, you would render this HTML to the user
except Exception as e:
    print(f"An error occurred: {e}")

view raw JSON →