django實現支付寶支付例項講解

2022-10-03 18:00:10 字數 2237 閱讀 7776

安裝python-alipay-sdk

pip install python-alipay-sdk --upgrade

配置檢視函式orders/views.py

# 訂單支付

# /order/pay

from alipay import alipay, isvalipay

import os

from django.conf import settings

class orderpayview(view):

def post(self, request):

'''支付頁面'''

# 判斷使用者是否登入

user = request.user

if not user.is_authenticated():

return jsonresponse()

# 接收訂單id

order_id = request.post.get('order_id')

# 校驗訂單id

if not order_id:

return jsonresponse()

# 查詢訂單資訊

try:

order = orde程式設計客棧rinfo.objects.get(order_id=order_id, user=user, pay_method=3, order_status=1)

except orderinfo.doesnotexist:

return jsonresponse()

# 業務處理 使用python sdk呼叫支付寶的支付介面

# 支付寶資訊 不能放在settings裡 會報錯

alipay = alipay(

appid="2016101200665304",

app_notify_url=none, # 預設**url 如果為空的話不能用'' 要用none

# 個人私鑰

app_private_key_string=os.path.join(settings.base_dir, 'apps/orders/app_private_key.pem'),

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

alipay_public_key_string=os.path.join(settings.base_dir, 'apps/orders/alipay_public_key.pem'),

# 加密方式

hljfbc sign_type="rsa2", # rsa 或者 rsa2

# 沙箱是true 正式環境是false

debug=true # 預設false

)# 呼叫支付介面

# 電腦**支付,需要跳轉到 + order_string 實際位址

# 沙箱位址 + order_string 沙箱位址在alipay後面加上dev

total_price = order.total_price + order.transit_price # decimal

order_string = alipay.api_alipay_trade_page_pay(

out_trade_no=order_id, # 訂單id

total_amount=str(total_price), # 支付總金額 因為decimal格式不能序列化 所以先轉成字串

subject='天天生鮮%s'%order_id,

return_url=none,

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

)# 返回應答

pay_程式設計客棧url = '' + order_string

return jsonresponse()

配置路由urls.py

from django.conf.urls import url

from orders.views import orderplaceview, ordercommitview, ohljfbcrderpayview

urlpatterns = [

url(r'^place$', orderplaceview.as_view(), name='place'), # 提交訂單頁面

url(r'^commit$', ordercommitview.as_view(), name='commit'), # 提交訂單處理

url(r'^pay$', orderpayview.as_view(), name='pay'), # 訂單支付

]

支付寶支付

1 呼叫支付寶介面 具體 i 呼叫alipaysubmit.buildrequestpara 方法生成要請求給支付寶的引數陣列。呼叫alipaycore.parafilter sparatemp 除去陣列中的空值和簽名引數。之後,呼叫buildrequestmysign spara 生成簽名結果。最...

支付寶支付

1 支付寶開發 支付寶開放平台 支付寶開發者文件 生成簽名 python alipay adk 直接使用第三方sdk python alipay sdk 1 登入開發者中心,熟悉 電腦 支付 整體流程 訪問 支付寶開發平台 登入,可以訪問開發者中心 2 第一步 建立應用 這裡使用沙箱環境測試 1 沙...

整合 支付寶支付

第一步,看官方文件 戳這裡 第二步,就是上圖,比如要匯入哪些內容.其中,總結一點自己一直的錯誤資訊 查了很多資料,沒管用,最後終於找到良方。解決辦法 把openssl這個檔案匯入到了這個工程目錄下 專案名稱 公共類 工具 第三方 支付寶sdk openssl 中間隔了三個資料夾,那麼在header ...