欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python接入支付寶的實例操作

 更新時間:2020年07月20日 14:19:32   作者:Ly  
在本篇文章里小編給大家整理的是一篇關(guān)于python接入支付寶的實例操作內(nèi)容,需要的朋友們可以學(xué)習(xí)下。

Python接入支付寶流程:

第一步:

首先要下載一個python的sdk,這個sdk在支付寶的開發(fā)者文檔中是沒有的,但是強大的python程序員自己開發(fā)了一套屬于python的支付寶支付sdk。

下載方式:pip install python-alipay-sdk ,github的鏈接為 https://github.com/fzlee/alipay

第二步:

下載好sdk之后,需要對支付寶進行一些相關(guān)的配置,支付寶的環(huán)境分為兩種,一為正式環(huán)境,也就是程序上線之后的環(huán)境。

二為沙箱環(huán)境,即開發(fā)者在開發(fā)項目時候的測試環(huán)境。

正式環(huán)境需要創(chuàng)建應(yīng)用,然后支付寶后臺進行審核,通過后會分配一個appid作為一個唯一標(biāo)志。如圖為創(chuàng)建應(yīng)用。

p1.jpg

這里我用到的是沙箱環(huán)境,所以不需要等待支付寶的審核,點擊進入開發(fā)者中心–>研發(fā)服務(wù)–>沙箱應(yīng)用。如圖所示它會自動給你分配一個appid,你只需要這是一下私鑰和公鑰即可。

p2.jpg

第三步:

需要生成自己的服務(wù)端的私鑰和公鑰,現(xiàn)在支付寶支持的加密方式為sha256,sha1,

推薦使用sha256.支付寶提供了生成秘鑰的方法和步驟(https://docs.open.alipay.com/291/105971/ )

打開括號中的鏈接,即可看到詳細的生成秘鑰的方法和步驟。公鑰私鑰生成完之后,要將公鑰上傳到支付寶密鑰設(shè)置中。將支付寶的公鑰copy到本地,將自己的公鑰私鑰和支付寶的公鑰保存好(這個很重要),一般都保存到本地項目的文件中。

第四步:

了解并熟悉支付寶的開發(fā)流程。如圖為客戶端通過后端程序與支付寶后端的交互流程圖

p3.jpg

1、用戶選擇使用支付寶付款

2、用戶使用app向商戶服務(wù)器發(fā)起請求獲取簽名后的訂單信息

3、商戶服務(wù)端返回簽名后的訂單信息(查詢字符串或者url)例如:

app_id=201609239&biz_content=%7B%22subject%22%3A%22%5Cu6d4b%5Cu8bd5%5Cu8ba2%5Cu5%22out_trade_no%22%3A%22201702021111%22%2C%22total_amount%22%3A1000%2C%22product_code%22%3A%22FAST_INSTANT_TRADE_PAY%22%7D&charset=utf-8&method=alipay.trade.page.pay&notify_url=http%3A%2F%dus.com%2F&return_url=http%3A%2F%2F47.92.87.172%3A8000%2F&sign_type=RSA2&timestamp=2015+15%3A19%3A15&version=1.0&sign=BSzk6LzwNp

4、商戶app調(diào)用支付接口

5-8、支付寶服務(wù)端接收請求,返回支付結(jié)果。

9、商戶app向商戶服務(wù)端發(fā)起請求,同步支付結(jié)果,服務(wù)端驗證簽名,解析支付結(jié)果。

10、返回支付結(jié)果。

11、商戶app展示支付結(jié)果。

12、支付寶服務(wù)端向商戶服務(wù)端異步發(fā)送支付通知。

13、商戶服務(wù)端接收支付通知,并返回響應(yīng)給支付寶服務(wù)端。

第五步:

python代碼如下

# 業(yè)務(wù)處理: 使用python sdk調(diào)用支付寶的支付接口
# 初始化
from alipay import AliPay
alipay = AliPay(
    appid="2016092300574189",
    app_notify_url=None,
    app_private_key_path=r"D:\python源代碼\alipay_keys\private_keys",
    alipay_public_key_path=r"D:\python源代碼\alipay_keys\public_key",
    sign_type="RSA2",
    debug=True,
)
# 調(diào)用接口
# total_pay = order.total_price + order.transit_price
total_pay = 12311
order_string = alipay.api_alipay_trade_page_pay(
    out_trade_no=1231231312313,
    total_amount=str(total_pay),
    subject='測試text%s' % 1,
    return_url=None,
    notify_url=None,
)
# 返回應(yīng)答
pay_url = "https://openapi.alipaydev.com/gateway.do?" + order_string
print(pay_url)

這段代碼實現(xiàn)的功能為生成一個簽名后的url,這個url就是訪問支付寶支付的url

其中初始化部分的參數(shù):appid為支付寶的唯一標(biāo)志id,

app_notify_url為支付寶后臺完成支付的時候異步通知到商戶的后臺服務(wù)器的URL地址。

 app_private_key_path為自己生成的私鑰, 

alipay_public_key_path為支付寶的公鑰。sign_type為簽名的加密方式, 

debug為true時,支付寶的支付的url為非正式的環(huán)境,如果為線上環(huán)境可以將其改為false。

調(diào)用接口部分的參數(shù): out_trade_no為訂單編號這個是商戶后臺服務(wù)器自己生成的訂單編號。 

total_amount為支付金額(必須為字符串類型),subject為標(biāo)題,return_url為支付成功后支付頁面要跳轉(zhuǎn)到哪個頁面。 

notify_url為異步通知的url。

第六步:

運行這段代碼會得到一個簽名之后的url。

p4.jpg

訪問這個url,看到的結(jié)果為:

p5.jpg

可以手機下載一個沙箱環(huán)境的支付寶,也可以點擊右側(cè)的登錄賬戶付款。在沙箱應(yīng)用中提供了用于付款的賬號和密碼。

第七步:

登錄完成支付

p1.jpg

實例擴展:

Python對接支付寶支付自實現(xiàn)功能

# -*- coding: utf-8 -*-
import base64
import json
import urllib.parse
from datetime import datetime
import requests
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
class AliPayException(Exception):
 def __init__(self, data):
 super(AliPayException, self).__init__()
 self.data = data
 def __str__(self):
 return "alipay - {}".format(self.data)
 def __unicode__(self):
 return u"alipay - {}".format(self.data)
class AliPayVerifyException(AliPayException):
 def __init__(self, msg, data):
 super(AliPayVerifyException, self).__init__('alipay verify except - {}:{}'.format(msg, data))
class AliPay:
 def __init__(self, **kwargs):
 """
 :param kwargs:

到此這篇關(guān)于python接入支付寶的實例操作的文章就介紹到這了,更多相關(guān)python如何接入支付寶內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python八大排序算法速度實例對比

    python八大排序算法速度實例對比

    這篇文章主要介紹了Python八大排序算法速度實例對比,具有一定參考價值,需要的朋友可以參考下。
    2017-12-12
  • Python操作MySQL數(shù)據(jù)庫的方法

    Python操作MySQL數(shù)據(jù)庫的方法

    pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。接下來通過本文給大家介紹Python操作MySQL數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2018-06-06
  • Python的設(shè)計模式編程入門指南

    Python的設(shè)計模式編程入門指南

    這篇文章主要介紹了Python的設(shè)計模式編程入門指南,設(shè)計模式主要指面對某些問題時需要用到的編程思想,需要的朋友可以參考下
    2015-04-04
  • pytest基本用法簡介

    pytest基本用法簡介

    這篇文章主要介紹了pytest基本用法簡介,幫助大家更好的利用python進行自動化測試,感興趣的朋友可以了解下
    2021-03-03
  • 詳解python中Numpy的屬性與創(chuàng)建矩陣

    詳解python中Numpy的屬性與創(chuàng)建矩陣

    這篇文章給大家分享了關(guān)于python中Numpy的屬性與創(chuàng)建矩陣的相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2018-09-09
  • python3 selenium自動化 下拉框定位的例子

    python3 selenium自動化 下拉框定位的例子

    今天小編就為大家分享一篇python3 selenium自動化 下拉框定位的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Pytorch中Softmax和LogSoftmax的使用詳解

    Pytorch中Softmax和LogSoftmax的使用詳解

    這篇文章主要介紹了Pytorch中Softmax和LogSoftmax的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 利用python獲取某年中每個月的第一天和最后一天

    利用python獲取某年中每個月的第一天和最后一天

    最近在做項目的時候,突然想到的這個問題,覺得比較有趣,就實際測試了一下,考慮到以后可能會有用,就總結(jié)下來寫了這篇文章,剛興趣的朋友們可以參考學(xué)習(xí)下,下面來跟著小編一起看看吧。
    2016-12-12
  • 進一步理解Python中的函數(shù)編程

    進一步理解Python中的函數(shù)編程

    這篇文章主要介紹了進一步理解Python中的函數(shù)編程,本文進一步討論了Python中函數(shù)編程的一些要點,來自IBM官方技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python箱型圖處理離群點的例子

    Python箱型圖處理離群點的例子

    今天小編就為大家分享一篇Python箱型圖處理離群點的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論