日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模拟支付宝支付功能

發布時間:2024/1/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟支付宝支付功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

思路:

我要在訂單表頁面點擊支付,在生成訂單的同時跳往,支付頁面,我們會生成一個支付地址,

返回給前段,前段通過??window.location.href = app.data.pay_url; 這個方法將地址放進地址欄;

然后去和沙箱的服務器進行交互;

此時,他會讓我們回調一個地址,這個地址是我們自己定義的,他就會重新返回我們的

django服務器我們,我們就利用? redirect? 這個函數進行蟲定向 ;跳回我們準備好的訂單也面,

把支付狀態;

好!那我們看是寫一下:

準備工作:

1.在官網上下載支付寶提供給我們的,測試軟件? ?“? ?支付寶開放平臺開發助手.exe ”如下圖,所示;

?2. 打開文件? 生成我們的秘鑰 和 公鑰? 點擊生成秘鑰 ; 就會自動給我們生成一個 公鑰 和秘鑰?

我們可以 ,打開文件位置 將文件托進桌面 :

?3.

重命名我們的秘鑰 和 公鑰 ; 并在 開頭和結尾 加上 以下格式;

注意(不要換行;不要改變原本的格式; 否則后面無法識別)


app_private_key_path ?自己的公鑰

alipay_public_key_path ?自己的秘鑰

?

?

?

4.我們要去支付寶官網;獲取第二公鑰(支付寶平臺的公鑰)文件;和基本信息


支付寶沙箱地址:
https://open.alipay.com/develop/manage

注意:點擊控制臺 ;下面有一個沙箱應用 點擊出現一下畫面;

然后點擊 ,”自定義秘鑰 “再點擊 “設置并查看“ 最后我們的公鑰復制進去;

平臺會自動生成一個;公鑰 我們把他復制一下;放進一個文本文件里面,

和之前的公鑰格式一樣;

alipay_public_key.txt ?沙箱中生成的公鑰 (這是我們的命名格式)

?

?5.復制一下基本信息保存一下后面會用到 ;

比如支付密碼、APPID 、 商家賬號、(建議保存到一個文本文件中);

然后打開的門的python 在根目錄下創建一個keys這樣的一個 文件夾;

將我們的這三個文件復制進去;

準備工作完畢

?

?

2. 下面開始寫我們的代碼

from alipay import AliPay from django.conf import settings from django.shortcuts import redirect # 準備秘鑰的路徑 app_private_key_path = os.path.join(settings.BASE_DIR,'keys/app_private_key.txt') #秘鑰路徑 alipay_public_key_path = os.path.join(settings.BASE_DIR,'keys/alipay_public_key.txt') #公鑰路徑# 讀取秘鑰 和 公鑰的 內容的內容 app_private_key_string = open(app_private_key_path,'r').read() #讀取自己的公鑰 alipay_public_key_string = open(alipay_public_key_path,'r').read() #讀取自己的秘鑰# 定義一個自己的支付類 class MyAlipay(APIView):def __init__(self,*args,**kwargs):# 繼承父類的__int__super().__init__(*args,**kwargs)# 初始化一個自己的實例屬性self.alipay = AliPay(appid='2021000121640162', #在沙箱中獲取的APPIDapp_private_key_string=app_private_key_string, #alipay_public_key_string=alipay_public_key_string,app_notify_url= None,sign_type='RSA2',debug=True, #支付請求就會發送到支付寶沙箱環境)# 生成支付地址的方法def get_trade_url(self,order_id,_total_amount):# 生成支付訂單的相關參數order_string = self.alipay.api_alipay_trade_page_pay(subject='商家收款',out_trade_no=order_id, # 訂單編號total_amount=_total_amount, #訂單金額return_url= 'http://127.0.0.1:8000/pay/result', #支付成功的回調地址 (需要自己寫一個這樣的地址)notify_url= 'http://127.0.0.1:8000/pay/result',)return 'https://openapi.alipaydev.com/gateway.do?' + order_string #返回 網關地址 + 我們生成的地址(order_string)from datetime import datetime # 繼承地地址的那個類,調用他的支付地址返回給前段 class Appzfb(MyAlipay):def post(self,request):# 生成一個支付地址#生成一個唯一的地址編號# (因為是測試,沒有在后端加載訂單,所以隨機生成了一個訂單編號進行模擬)order_id = datetime.now().strftime("%Y%m%d%H%M%S")pay_url = self.get_trade_url(order_id,2)print('請求地址',pay_url)return Response ({'code':200,'msg':'正在前往支付....','pay_url':pay_url,})在vue實現 請求成功后前段需要把這個地址放進地址欄,開始和支付寶沙箱的服務器進行交互(完成支付);

Axios.post('http://127.0.0.1:8000/zfb/')

? ? ? ? ? ? ? ? .then(app=>{

? ? ? ? ? ? ? ? ? ? if(app.data.code == 200){

? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? alert(app.data.msg)

? ? ? ? ? ? ? ? ? ? ? ? // 將支付地址放進,地址欄

? ? ? ? ? ? ? ? ? ? ? ? window.location.href = app.data.pay_url;

? ? ? ? ? ? ? ? ? ? ? ? console.log(app)

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? })

? ? ? ? ? ? ? ? .catch(res=>{

? ? ? ? ? ? ? ? ? ? console.log(res,'請求失敗的響應')

? ? ? ? ? ? ? ? })

?

?

?

# 回調后的地址,回調到了django的這個地址; # 進行一個重定向,跳進前段的訂單頁面; #http://localhost:8080/DenVue4vue 是 前段 訂單頁面的地址 class Appsome(APIView):def get(self,request):return redirect('http://localhost:8080/DenVue4vue')

總結

以上是生活随笔為你收集整理的模拟支付宝支付功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。