91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-04 20:32:05 來源:腳本之家 閱讀:151 作者:BZ易風 欄目:開發技術

安裝python-alipay-sdk

pip install python-alipay-sdk --upgrade

配置

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

視圖函數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({'res':0, 'errmsg':'用戶尚未登錄'})
    # 接收訂單id
    order_id = request.POST.get('order_id')
    # 校驗訂單id
    if not order_id:
      return JsonResponse({'res':1, 'errmsg':'無效的訂單id'})
    # 查詢訂單信息
    try:
      order = OrderInfo.objects.get(order_id=order_id, user=user, pay_method=3, order_status=1)
    except OrderInfo.DoesNotExist:
      return JsonResponse({'res':2, 'errmsg':'訂單錯誤'})

    # 業務處理 使用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'),
      # 加密方式
      sign_type="RSA2", # RSA 或者 RSA2
      # 沙箱是True 正式環境是False
      debug=True # 默認False
    )
    # 調用支付接口
    # 電腦網站支付,需要跳轉到https://openapi.alipay.com/gateway.do? + order_string 實際地址
    # 沙箱地址 https://openapi.alipaydev.com/gateway.do? + 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 = 'https://openapi.alipaydev.com/gateway.do?' + order_string
    return JsonResponse({'res':3, 'pay_url':pay_url})

配置路由urls.py

from django.conf.urls import url
from orders.views import OrderPlaceView, OrderCommitView, OrderPayView


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'), # 訂單支付

]

以上就是本次介紹的相關知識點以及實例代碼,更多內容可以參考億速云相關欄目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林口县| 永顺县| 临武县| 庐江县| 渭南市| 澄江县| 宝丰县| 花莲市| 合阳县| 肥城市| 巴马| 郴州市| 靖州| 扬州市| 温泉县| 婺源县| 克什克腾旗| 南充市| 固安县| 永丰县| 南京市| 米泉市| 鲜城| 岱山县| 远安县| 鹤庆县| 长海县| 都昌县| 天台县| 焉耆| 大田县| 汉源县| 石台县| 东方市| 仁寿县| 休宁县| 博湖县| 明溪县| 伊吾县| 临泉县| 紫金县|