国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python接入支付寶的實例操作

瀏覽:127日期:2022-07-16 17:46:12

Python接入支付寶流程:

第一步:

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

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

第二步:

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

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

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

python接入支付寶的實例操作

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

python接入支付寶的實例操作

第三步:

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

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

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

第四步:

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

python接入支付寶的實例操作

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

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

3、商戶服務端返回簽名后的訂單信息(查詢字符串或者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調用支付接口

5-8、支付寶服務端接收請求,返回支付結果。

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

10、返回支付結果。

11、商戶app展示支付結果。

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

13、商戶服務端接收支付通知,并返回響應給支付寶服務端。

第五步:

python代碼如下

# 業(yè)務處理: 使用python sdk調用支付寶的支付接口# 初始化from alipay import AliPayalipay = AliPay( appid='2016092300574189', app_notify_url=None, app_private_key_path=r'D:python源代碼alipay_keysprivate_keys', alipay_public_key_path=r'D:python源代碼alipay_keyspublic_key', sign_type='RSA2', debug=True,)# 調用接口# total_pay = order.total_price + order.transit_pricetotal_pay = 12311order_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,)# 返回應答pay_url = 'https://openapi.alipaydev.com/gateway.do?' + order_stringprint(pay_url)

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

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

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

app_private_key_path為自己生成的私鑰,

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

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

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

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

notify_url為異步通知的url。

第六步:

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

python接入支付寶的實例操作

訪問這個url,看到的結果為:

python接入支付寶的實例操作

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

第七步:

登錄完成支付

python接入支付寶的實例操作

實例擴展:

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

# -*- coding: utf-8 -*-import base64import jsonimport urllib.parsefrom datetime import datetimeimport requestsfrom cryptography.hazmat.backends import default_backendfrom cryptography.hazmat.primitives import hashesfrom cryptography.hazmat.primitives import serializationfrom cryptography.hazmat.primitives.asymmetric import paddingclass 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:

到此這篇關于python接入支付寶的實例操作的文章就介紹到這了,更多相關python如何接入支付寶內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: 支付寶 Python
相關文章:
主站蜘蛛池模板: 来宾市| 北流市| 淅川县| 正宁县| 鄄城县| 牟定县| 泗洪县| 武夷山市| 常宁市| 榆社县| 江华| 江北区| 松阳县| 宜章县| 和田市| 隆回县| 青海省| 齐河县| 富民县| 峨眉山市| 离岛区| 凤山市| 于田县| 平昌县| 比如县| 湛江市| 平定县| 鄂托克前旗| 获嘉县| 江山市| 句容市| 萝北县| 鹤山市| 扎囊县| 霍城县| 会东县| 乃东县| 临泽县| 沙湾县| 陆良县| 临沭县|