Python接入支付寶進行PC端支付

2022-05-06 22:21:09 字數 3534 閱讀 1143

1.  支付寶開放平台登入,使用支付寶賬號登入

2.選擇沙箱模式 【支付寶提供了測試環境】

3.支付寶開發者文件

4.電腦**支付

檢視支付流程和支付介面介紹

5.因為官方並沒有提供python語言的sdk,但是在github上有大神提供了二次封裝過的工具

使用:pip install python-alipay-sdk --upgrade

6.github**中提供了pc端,移動端對應的使用方法,下面以pc端為例,進行演示

原理介紹:

1.進行秘鑰配置,因為傳輸的資料必須要進行簽名加密,ubuntu內建命令openssl可以生成私鑰,根據私鑰生成公鑰

openssl
openssl> exit

將-----begin public key-----和-----end public key-----中間的內容儲存在支付寶的使用者配置中(沙箱或者正式)

3.配置好公鑰後,支付寶會生成公鑰,將公鑰的內容複製儲存到乙個文字檔案中(alipay_pubilc_key.pem),注意需要在文字的首尾新增標記位(-----begin   public key-----和-----end public key-----) 

5.使用支付寶 python包的初始化

6.呼叫支付介面

7.獲取支付結果介面

7.**實現,這是乙個簡單的demo,在真正專案開發中,只用把沙箱環境更改成正式環境就可以,其他一切都是一樣的

1.檔案目錄

3.主路由,即pay_test下urls.py

from django.conf.urls import url,include

from django.contrib import admin

urlpatterns = [

url(r'^admin/', admin.site.urls),

]

from django.conf.urls import url

from . import views

urlpatterns=[

url(r"^$",views.index),

url(r"^pay/$",views.pay),

url(r"^check_pay/$", views.check_pay),

]

4.檢視函式views.py

# 建立用於進行支付寶支付的工具物件

alipay = alipay(

# 支付寶的公鑰,驗證支付寶回傳訊息使用,不是你自己的公鑰,

sign_type="rsa2", # rsa 或者 rsa2

debug=true # 預設false 配合沙箱模式使用

)# 電腦**支付,需要跳轉到 + order_string

order_string = alipay.api_alipay_trade_page_pay(

out_trade_no=order_id,

total_amount=str(0.01), # 將decimal型別轉換為字串交給支付寶

subject="商貿**",

return_url=none,

notify_url=none # 可選, 不填則使用預設notify url

)# 讓使用者進行支付的支付寶頁面**

url = settings.alipay_url + "?" + order_string

return jsonresponse()

def check_pay(request):

# 建立用於進行支付寶支付的工具物件

order_id = request.get.get("order_id")

alipay = alipay(

# 支付寶的公鑰,驗證支付寶回傳訊息使用,不是你自己的公鑰,

sign_type="rsa2", # rsa2,官方推薦,配置公鑰的時候能看到

debug=true # 預設false 配合沙箱模式使用

)while true:

# 呼叫alipay工具查詢支付結果

response = alipay.api_alipay_trade_query(order_id) # response是乙個字典

# 判斷支付結果

code = response.get("code") # 支付寶介面呼叫成功或者錯誤的標誌

trade_status = response.get("trade_status") # 使用者支付的情況

if code == "10000" and trade_status == "trade_success":

# 表示使用者支付成功

# 返回前端json,通知支付成功

return jsonresponse()

elif code == "40004" or (code == "10000" and trade_status == "wait_buyer_pay"):

# 表示支付寶介面呼叫暫時失敗,(支付寶的支付訂單還未生成) 後者 等待使用者支付

# 繼續查詢

print(code)

print(trade_status)

continue

else:

# 支付失敗

# 返回支付失敗的通知

return jsonresponse()

5.settings.py下加下面兩句話

static_url = '/static/'

staticfiles_dirs = [os.path.join(base_dir, "static")]

# 支付寶配置引數

alipay_url = ""

支付寶pc端支付接入PHP實現

放入乙個外掛程式庫中,方便管理 1.發起支付 public function init 2.處理支付後的動作,比如更改訂單狀態為支付,跳轉到支付成功頁面等等 a.處理同步通知 同步通知處理 public function return url else 請根據您的業務邏輯來編寫程式 以上 僅作參考 ...

支付寶pc端支付接入PHP實現

放入乙個外掛程式庫中,方便管理 1.發起支付 public function init 2.處理支付後的動作,比如更改訂單狀態為支付,跳轉到支付成功頁面等等 a.處理同步通知 同步通知處理 public function return url else 請根據您的業務邏輯來編寫程式 以上 僅作參考 ...

支付寶接入

三 將上面的資料夾拖入工程,並新增相應的依賴庫 進行編譯,會出現以下問題 1 unknown type name nsstring 或者 unknown type name nsdata 等不識別常見類的問題。這是因為缺少foundation類庫和uikit類庫,支付寶demo中之所以沒有出現此錯誤...