欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付接入-創(chuàng)新互聯(lián)

本文實(shí)例為大家分享了python銀聯(lián)支付和支付寶支付接入的具體代碼,供大家參考,具體內(nèi)容如下

走過(guò)10余年,我們已為眾多企業(yè)及政府機(jī)關(guān)提供專(zhuān)業(yè)的互聯(lián)網(wǎng)服務(wù)。我們不只是一家專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司;我們對(duì)營(yíng)銷(xiāo)、技術(shù)、服務(wù)都有自己獨(dú)特見(jiàn)解,創(chuàng)新互聯(lián)采取“創(chuàng)意+綜合+營(yíng)銷(xiāo)”一體化的方式為您提供更專(zhuān)業(yè)的服務(wù)!創(chuàng)新互聯(lián)經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。

前置條件:需要安裝Python的OpenSSL模塊,我使用的版本是16.1.0,可以使用pip install pyopenssl來(lái)安裝

一、支付寶支付

1. 使用RSA公鑰加密系統(tǒng)進(jìn)行簽名和簽名驗(yàn)證,需要自己生成一個(gè)RSA私鑰和對(duì)應(yīng)的一個(gè)RSA公鑰(在Linux下可以使用ssh-keygen命令來(lái)生成),公鑰需要上傳至支付寶,供支付寶對(duì)開(kāi)發(fā)者發(fā)送的請(qǐng)求做簽名驗(yàn)證使用;而同時(shí)支付寶會(huì)提供一個(gè)RSA公鑰給開(kāi)發(fā)者,開(kāi)發(fā)者使用這個(gè)公鑰來(lái)驗(yàn)證支付寶的回調(diào)請(qǐng)求的合法性。

2. 整個(gè)接入過(guò)程最核心的工作就是構(gòu)建一個(gè)合法的請(qǐng)求報(bào)文,這個(gè)可以參考支付寶的相關(guān)文檔;其次是對(duì)請(qǐng)求報(bào)文的內(nèi)容進(jìn)行RSA簽名,并將簽名隨請(qǐng)求報(bào)文一并發(fā)送。

核心的簽名和報(bào)文構(gòu)建代碼如下:

import OpenSSL
import json
import time
import urllib
import base64
 
from django.conf import settings
 
def build_sign(param_map, sign_type="RSA"):
 '''
 Doc: https://doc.open.alipay.com/doc2/detail.htm?treeId=200&articleId=105351&docType=1
 '''
 # 將篩選的參數(shù)按照第一個(gè)字符的鍵值A(chǔ)SCII碼遞增排序(字母升序排序),如果遇到相同字符則按照第二個(gè)字符的鍵值A(chǔ)SCII碼遞增排序,以此類(lèi)推。
 sort_param = sorted([(key, unicode(value, settings.ALIPAY_CHARSET).encode(settings.ALIPAY_CHARSET)) for key, value in param_map.iteritems()], key=lambda x: x[0])
 # 將排序后的參數(shù)與其對(duì)應(yīng)值,組合成“參數(shù)=參數(shù)值”的格式,并且把這些參數(shù)用&字符連接起來(lái),此時(shí)生成的字符串為待簽名字符串。SDK中已封裝簽名方法,開(kāi)發(fā)者可直接調(diào)用,詳見(jiàn)SDK說(shuō)明。
 # 如自己開(kāi)發(fā),則需將待簽名字符串和私鑰放入SHA1 RSA算法中得出簽名(sign)的值。
 content = '&'.join(['='.join(x) for x in sort_param])
 return base64.encodestring(OpenSSL.crypto.sign(settings.ALIPAY_APP_PRIVATE_KEY_OBJ, content, 'sha1'))
 
def build_params(out_trade_no, subject, body, total_amount):
 '''
 Doc:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.MVkRGo&treeId=193&articleId=105465&docType=1
 將參數(shù)按照支付寶規(guī)定組織并簽名之后,返回
 '''
 params = {}
 # 獲取配置文件
 params['app_id']   = settings.ALIPAY_APPID
 params['method']   = settings.ALIPAY_METHOD
 params['format']   = settings.ALIPAY_FORMAT
 params['charset']   = settings.ALIPAY_CHARSET
 params['sign_type']   = settings.ALIPAY_SIGN_TYPE
 params['sign_type']   = settings.ALIPAY_SIGN_TYPE
 params['timestamp']   = time.strftime('%Y-%m-%d %H:%M:%S')
 params['version']   = settings.ALIPAY_VERSION
 params['notify_url']  = settings.ALIPAY_NOTIFY_URL
 
 # 業(yè)務(wù)參數(shù)
 params['biz_content'] = {}
 params['biz_content']['body']    = body   # 訂單描述、訂單詳細(xì)、訂單備注,顯示在支付寶收銀臺(tái)里的“商品描述”里
 params['biz_content']['subject']   = subject  # 商品的標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。
 params['biz_content']['out_trade_no']  = out_trade_no # 商戶(hù)網(wǎng)站唯一訂單號(hào) 
 params['biz_content']['total_amount']  = '%.2f' % (float(total_amount) / 100) # 訂單總金額,單位為元,精確到小數(shù)點(diǎn)后兩位,取值范圍[0.01,100000000] 
 params['biz_content']['product_code']  = settings.ALIPAY_APP_PRODUCT_CODE
 params['biz_content']      = json.dumps(params['biz_content'], separators=(',', ':'))
 
 params['sign'] = build_sign(params)
 
 return urllib.urlencode(params)
 
def check_sign(message, sign):
 '''Doc: https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.dDRpeK&treeId=204&articleId=105301&docType=1'''
 try:
  OpenSSL.crypto.verify(settings.ALIPAY_PUBLIC_KEY_OBJ, sign, message, 'SHA1')
  return True
 except Exception as _:
  return False

當(dāng)前名稱(chēng):python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付接入-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://chinadenli.net/article2/epeoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名小程序開(kāi)發(fā)云服務(wù)器域名注冊(cè)、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
国产欧美日韩一级小黄片| 成人三级视频在线观看不卡| 亚洲天堂久久精品成人| 日本人妻中出在线观看| 亚洲中文字幕高清乱码毛片| 午夜久久久精品国产精品| 国产又粗又长又大的视频| 男人大臿蕉香蕉大视频| 一区二区三区日本高清| 色婷婷在线视频免费播放| 91免费精品国自产拍偷拍| 91精品欧美综合在ⅹ| 午夜精品国产精品久久久| 亚洲欧美国产中文色妇| 亚洲中文字幕熟女丝袜久久| 日韩av亚洲一区二区三区| 日本一级特黄大片国产| 欧美野外在线刺激在线观看| 国产免费一区二区不卡| 欧美黑人在线一区二区| 成年男女午夜久久久精品| 五月激情五月天综合网| 成人免费高清在线一区二区| 精品人妻一区二区四区| 国产高清在线不卡一区| 人妻亚洲一区二区三区| 男人和女人干逼的视频| 日韩欧美亚洲综合在线| 后入美臀少妇一区二区| 日韩欧美中文字幕av| 亚洲欧美日韩国产综合在线| 中文字幕亚洲精品人妻| 日韩一级毛一欧美一级乱| 色婷婷丁香激情五月天| 久久精品国产一区久久久| 亚洲一区二区三区av高清| 日韩中文字幕视频在线高清版 | 日本一本在线免费福利| 中文字幕佐山爱一区二区免费| 午夜精品黄片在线播放| 91超频在线视频中文字幕|