02.支付寶沙箱環境注冊及使用


#訪問"支付寶開發平台"登錄,可以訪問開發者中心
https://open.alipay.com/platform/home.htm
#可以參考"電腦網站支付" 熟悉電腦支付整體流程
https://docs.open.alipay.com/270/105899/

支付寶開發網址

支付寶開放平台: https://open.alipay.com/platform/home.htm 
支付寶沙箱環境: https://openhome.alipay.com/platform/appDaily.htm?tab=info 
支付寶開發者文檔:https://openhome.alipay.com/developmentDocument.htm 
電腦網站支付流程:https://docs.open.alipay.com/270 
生成簽名:https://docs.open.alipay.com/291/106103/ 
python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
  • 阿里官方沒有提供python對接支付的sdk,但是python庫中有非官方的sdk包可以使用
  • python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
  • 使用起來非常簡單,只要傳入幾個必要的參數就可以完成
  • 由於支付對安全要求很高,所以要理解對接支付寶安全的流程: 公鑰加密、私鑰解密 這八個字

1.沙箱環境的創建及使用

1.1第一步:創建應用(這里使用沙箱環境測試)

公鑰加密、私鑰解密

1.2 按照官方要求生成秘鑰

生成秘鑰參考官網: https://docs.open.alipay.com/291/105971

  • 需要下載工具(windows選上面這個 地球人都知道!)

  • 一定要存儲兩個東西

    • 支付寶公鑰:我發送信息給支付寶,使用支付寶公鑰進行加密

    • app私鑰(我自己生成的):支付寶給我發送的信息是用我剛剛上傳的app公鑰加密,只有我

      自己的私鑰可以解密

  • 下載相應環境工具並安裝后即可使用。

1.3把生成的app公鑰粘貼到沙箱環境的app

沙箱環境地址: https://openhome.alipay.com/platform/appDaily.htm?tab=info

1.4 查看沙箱環境賬號和密碼

沙箱賬號地址:https://openhome.alipay.com/platform/appDaily.htm?tab=account

#商家信息
商家賬號axxdws3230@sandbox.com
商戶UID2088102181105490
登錄密碼111111


買家信息
買家賬號uqdgdc2803@sandbox.com
登錄密碼111111
支付密碼111111
用戶名稱uqdgdc2803
證件類型身份證(IDENTITY_CARD)
證件號碼973608193303181861

2.測試支付寶獲取支付寶掃碼鏈接


2.1 app_private_key.pem app私鑰

-----BEGIN RSA PRIVATE KEY-----
..................
-----END RSA PRIVATE KEY-----

2.2 alipay_public_key.pem 支付寶公鑰

-----BEGIN PUBLIC KEY-----
.........
-----END PUBLIC KEY-----

2.3測試生成支付鏈接

alipay_public_text.py

# -*- coding: utf-8 -*-
from alipay import AliPay

# 沙箱環境中 app 私鑰
app_private_key_string = open('app_private_key.pem').read()  # app私鑰
alipay_public_key_string = open('alipay_public_key.pem').read()  # 支付寶公鑰


def get_alipay_url():
    # 實例化一個alipay對象
    alipay = AliPay(
        appid="2016102600762673",
        app_notify_url=None,  # 默認回調url
        app_private_key_string=app_private_key_string,  # 支付寶的公鑰,驗證支付寶回傳消息使用,不是你自己的公鑰,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=True,  # 默認False,我們是沙箱,所以改成True(讓訪問沙箱環境支付寶地址)
        # config = AliPayConfig(timeout=15), # 可選, 請求超時時間
    )

    # 調用支付接口,生成支付鏈接
    # 電腦網站支付,需要跳轉到https://openapi.alipay.com/gateway.do? + order_string
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no="201612226",  # 訂單id,應該從前端獲取
        total_amount=str(0.01),  # 訂單總金額
        subject="測試阿里雲付款",  # 付款標題信息
        return_url=None,  # 付款成功回調地址(可以為空)
        notify_url=None  # 付款成功后異步通知地址(可以為空)
    )
    pay_url = "https://openapi.alipaydev.com/gateway.do?" + order_string
    print(pay_url)  # 將這個url復制到瀏覽器,就會打開支付寶支付頁面


def query_pay():
    alipay = AliPay(
        appid="2016102600762673",  # 沙箱appid
        app_notify_url=None,  # 默認回調url
        app_private_key_string=app_private_key_string,
        # 支付寶的公鑰,驗證支付寶回傳消息使用,不是你自己的公鑰
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=True,  # 默認False,我們是沙箱,所以改成True(讓訪問沙箱環境支付寶地址)
    )
    trade_query = alipay.api_alipay_trade_query(
        out_trade_no=20161112,  # 上面生成支付碼頁面時傳入的商品訂單號
        trade_no=None
    )
    print(trade_query)


if __name__ == '__main__':
    get_alipay_url()
    # query_pay()


'''
{
    "code":"10000",	# code=10000代表支付成功
    "msg":"Success",
    "buyer_logon_id":"foq***@sandbox.com",
    "buyer_pay_amount":"0.00",
    "buyer_user_id":"2088102180228981",
    "buyer_user_type":"PRIVATE",
    "invoice_amount":"0.00",
    "out_trade_no":"20161112",
    "point_amount":"0.00",
    "receipt_amount":"0.00",
    "send_pay_date":"2020-02-20 21:20:48",
    "total_amount":"0.01",
    "trade_no":"2020022022001428981000087565",
    "trade_status":"TRADE_SUCCESS"
}
'''
  • 生成鏈接如下
http://unitradeprod.alipaydev.com/appAssign.htm?alipay_exterface_invoke_assign_target=invoke_cb06f44f1829269133016bba74da9446&alipay_exterface_invoke_assign_sign=_ew_sx_r_w_u_v_b7h_nre%2Fd_ltm1_gddv_gs8_bxro_eif_f1awsc_q_c_fz_a6t_z_cb2iu_q%3D%3D


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM