最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python對(duì)接支付寶支付之使用AliPay實(shí)現(xiàn)的詳細(xì)操作指南

 更新時(shí)間:2025年07月28日 10:54:10   作者:愛(ài)搬磚的程序猿.  
支付寶沒(méi)有提供Python SDK,但是強(qiáng)大的github就有提供python-alipay-sdk,封裝里很多復(fù)雜操作,使用這個(gè)我們就調(diào)用支付寶接口就比較簡(jiǎn)單了,這篇文章主要介紹了Python對(duì)接支付寶支付之使用AliPay實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下

一、引言

在當(dāng)今數(shù)字化的商業(yè)環(huán)境中,電子支付已經(jīng)成為交易的主流方式。支付寶作為國(guó)內(nèi)領(lǐng)先的第三方支付平臺(tái),被廣泛應(yīng)用于各類(lèi)線(xiàn)上線(xiàn)下交易場(chǎng)景。對(duì)于 Python 開(kāi)發(fā)者而言,如何方便快捷地在項(xiàng)目中對(duì)接支付寶支付是一個(gè)常見(jiàn)需求。本文將詳細(xì)介紹如何使用 alipay 庫(kù)中的 AliPay 類(lèi),完成支付寶支付的一系列操作,涵蓋支付、查詢(xún)、退款以及退款查詢(xún)等功能。

二、準(zhǔn)備工作

2.1 支付寶開(kāi)放平臺(tái)入駐與應(yīng)用創(chuàng)建

  • 訪(fǎng)問(wèn)支付寶開(kāi)放平臺(tái),注冊(cè)并登錄賬號(hào)。
  • 入駐成為開(kāi)發(fā)者后,創(chuàng)建一個(gè)新的應(yīng)用。在應(yīng)用管理界面,獲取應(yīng)用的 APPID,這是應(yīng)用在支付寶平臺(tái)的唯一標(biāo)識(shí)。

2.2 密鑰生成與配置

  • 生成 RSA2 密鑰對(duì)(公鑰和私鑰),可以使用支付寶提供的密鑰生成工具。
  • 將應(yīng)用私鑰保存好,同時(shí)將公鑰上傳至支付寶開(kāi)放平臺(tái)。另外,需要獲取支付寶公鑰,用于驗(yàn)證支付寶返回的簽名。

2.3 安裝alipay庫(kù)

使用 pip 命令安裝 python-alipay-sdk 庫(kù),它提供了 AliPay 類(lèi)來(lái)方便我們與支付寶進(jìn)行交互:

pip install python-alipay-sdk --upgrade

三、導(dǎo)入AliPay并初始化

在 Python 代碼中,我們需要導(dǎo)入 AliPay 類(lèi)并進(jìn)行初始化。以下是示例代碼:

from alipay import AliPay

# 初始化 AliPay 對(duì)象
app_private_key_string = open("path/to/your/app_private_key.pem").read()
alipay_public_key_string = open("path/to/alipay_public_key.pem").read()

alipay = AliPay(
    appid="your_appid",
    app_notify_url=None,  # 支付結(jié)果異步通知 URL,可根據(jù)實(shí)際情況設(shè)置
    app_private_key_string=app_private_key_string,
    alipay_public_key_string=alipay_public_key_string,
    sign_type="RSA2",  # 簽名算法,推薦使用 RSA2
    debug=False  # 調(diào)試模式,True 表示使用沙箱環(huán)境,F(xiàn)alse 表示使用正式環(huán)境
)

四、發(fā)起支付請(qǐng)求

使用 AliPay 對(duì)象發(fā)起支付請(qǐng)求,生成支付鏈接或二維碼。以下是電腦網(wǎng)站支付的示例代碼:

# 支付參數(shù)
subject = "商品名稱(chēng)"
out_trade_no = "your_out_trade_no"  # 商戶(hù)訂單號(hào),需保證唯一
total_amount = 9.9  # 訂單總金額

# 發(fā)起支付請(qǐng)求
order_string = alipay.api_alipay_trade_page_pay(
    out_trade_no=out_trade_no,
    total_amount=total_amount,
    subject=subject,
    return_url="your_return_url",  # 支付成功后跳轉(zhuǎn)的頁(yè)面 URL
    notify_url="your_notify_url"  # 支付結(jié)果異步通知 URL
)

# 生成支付鏈接
pay_url = "https://openapi.alipay.com/gateway.do?" + order_string
print(f"支付鏈接:{pay_url}")

五、查詢(xún)訂單狀態(tài)

在支付過(guò)程中,我們可能需要查詢(xún)訂單的支付狀態(tài)。以下是查詢(xún)訂單的示例代碼:

# 要查詢(xún)的訂單號(hào)
out_trade_no = "your_out_trade_no"

# 查詢(xún)訂單
result = alipay.api_alipay_trade_query(out_trade_no=out_trade_no)

if result.get("trade_status") == "TRADE_SUCCESS":
    print("訂單支付成功")
elif result.get("trade_status") == "TRADE_CLOSED":
    print("訂單已關(guān)閉")
else:
    print(f"訂單狀態(tài):{result.get('trade_status')}")

六、發(fā)起退款請(qǐng)求

如果需要對(duì)已支付的訂單進(jìn)行退款操作,可以使用以下代碼:

# 要退款的訂單號(hào)
out_trade_no = "your_out_trade_no"
# 退款金額
refund_amount = 9.9
# 退款原因
refund_reason = "用戶(hù)申請(qǐng)退款"

# 發(fā)起退款請(qǐng)求
result = alipay.api_alipay_trade_refund(
    out_trade_no=out_trade_no,
    refund_amount=refund_amount,
    refund_reason=refund_reason
)

if result.get("code") == "10000":
    print("退款申請(qǐng)成功")
else:
    print(f"退款申請(qǐng)失敗,錯(cuò)誤信息:{result.get('msg')}")

七、查詢(xún)退款狀態(tài)

發(fā)起退款請(qǐng)求后,我們可以查詢(xún)退款的處理狀態(tài)。以下是查詢(xún)退款狀態(tài)的示例代碼:

# 要查詢(xún)的訂單號(hào)
out_trade_no = "your_out_trade_no"
# 退款單號(hào)(如果退款時(shí)未指定,可使用訂單號(hào)代替)
out_request_no = "your_out_request_no"

# 查詢(xún)退款狀態(tài)
result = alipay.api_alipay_trade_fastpay_refund_query(
    out_trade_no=out_trade_no,
    out_request_no=out_request_no
)

if result.get("code") == "10000":
    refund_status = result.get("refund_status")
    print(f"退款狀態(tài):{refund_status}")
else:
    print(f"退款查詢(xún)失敗,錯(cuò)誤信息:{result.get('msg')}")

八、完整示例代碼

from alipay import AliPay

# 初始化 AliPay 對(duì)象
app_private_key_string = open("path/to/your/app_private_key.pem").read()
alipay_public_key_string = open("path/to/alipay_public_key.pem").read()

alipay = AliPay(
    appid="your_appid",
    app_notify_url=None,
    app_private_key_string=app_private_key_string,
    alipay_public_key_string=alipay_public_key_string,
    sign_type="RSA2",
    debug=False
)

# 支付參數(shù)
subject = "商品名稱(chēng)"
out_trade_no = "your_out_trade_no"
total_amount = 9.9

# 發(fā)起支付請(qǐng)求
order_string = alipay.api_alipay_trade_page_pay(
    out_trade_no=out_trade_no,
    total_amount=total_amount,
    subject=subject,
    return_url="your_return_url",
    notify_url="your_notify_url"
)

# 生成支付鏈接
pay_url = "https://openapi.alipay.com/gateway.do?" + order_string
print(f"支付鏈接:{pay_url}")

# 查詢(xún)訂單
result = alipay.api_alipay_trade_query(out_trade_no=out_trade_no)
if result.get("trade_status") == "TRADE_SUCCESS":
    print("訂單支付成功")

    # 發(fā)起退款請(qǐng)求
    refund_amount = 9.9
    refund_reason = "用戶(hù)申請(qǐng)退款"
    refund_result = alipay.api_alipay_trade_refund(
        out_trade_no=out_trade_no,
        refund_amount=refund_amount,
        refund_reason=refund_reason
    )
    if refund_result.get("code") == "10000":
        print("退款申請(qǐng)成功")

        # 查詢(xún)退款狀態(tài)
        out_request_no = "your_out_request_no"
        refund_query_result = alipay.api_alipay_trade_fastpay_refund_query(
            out_trade_no=out_trade_no,
            out_request_no=out_request_no
        )
        if refund_query_result.get("code") == "10000":
            refund_status = refund_query_result.get("refund_status")
            print(f"退款狀態(tài):{refund_status}")
        else:
            print(f"退款查詢(xún)失敗,錯(cuò)誤信息:{refund_query_result.get('msg')}")
    else:
        print(f"退款申請(qǐng)失敗,錯(cuò)誤信息:{refund_result.get('msg')}")
else:
    print(f"訂單狀態(tài):{result.get('trade_status')}")

九、注意事項(xiàng)

  • 密鑰安全:應(yīng)用私鑰和支付寶公鑰是非常重要的安全信息,務(wù)必妥善保管,避免泄露。
  • 簽名驗(yàn)證:在接收支付寶的異步通知時(shí),需要對(duì)簽名進(jìn)行驗(yàn)證,確保數(shù)據(jù)的真實(shí)性和完整性。
  • 訂單號(hào)唯一性:商戶(hù)訂單號(hào)和退款單號(hào)在系統(tǒng)中必須保證唯一,避免出現(xiàn)重復(fù)訂單或退款問(wèn)題。
  • 環(huán)境切換:在開(kāi)發(fā)和測(cè)試階段,可以將 debug 參數(shù)設(shè)置為 True,使用支付寶沙箱環(huán)境進(jìn)行測(cè)試,確保正式上線(xiàn)前功能正常。

通過(guò)以上步驟,你可以使用 AliPay 類(lèi)輕松實(shí)現(xiàn)支付寶支付的全流程操作,包括支付、查詢(xún)、退款和退款查詢(xún)。

總結(jié)

到此這篇關(guān)于Python對(duì)接支付寶支付之使用AliPay實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python AliPay對(duì)接支付寶支付內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

尼木县| 永寿县| 衢州市| 游戏| 木兰县| 麻阳| 泾川县| 仙游县| 鞍山市| 福贡县| 成武县| 大宁县| 华安县| 安龙县| 河北省| 沽源县| 丹阳市| 延安市| 东阿县| 深泽县| 安新县| 巴林左旗| 海口市| 屏南县| 华容县| 青冈县| 淮滨县| 阿瓦提县| 清流县| 临沧市| 海安县| 克东县| 锡林浩特市| 大石桥市| 图们市| 柞水县| 木兰县| 房山区| 南昌县| 安国市| 南雄市|