国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現支付寶當面付(掃碼支付)功能

2020-02-15 21:34:53
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python實現支付寶當面付示的具體代碼,供大家參考,具體內容如下

一、配置信息準備

登錄螞蟻金服開放平臺:https://open.alipay.com/platform/home.htm

開發資料閱讀:https://docs.open.alipay.com/194/106078

創建好應用,配置好密鑰等信息后,就可以開發了。

 二、開發支付寶支付工具類

1:相關配置信息

# ========支付相關配置信息=========== ALIPAY_INPUT_CHARSET = 'utf-8' # 商戶ID,以2088開頭的16位純數字 ALIPAY_PARTNER = '2088************' # 服務商支付寶賬號 ALIPAY_SELLER_EMAIL = '' # 支付結果回調地址 ALIPAY_NOTIFY_URL = "商家后臺回調接口地址" # 訪問模式,根據自己的服務器是否支持ssl訪問,若支持請選擇https;若不支持請選擇http ALIPAY_TRANSPORT = 'https' #簽名加密方式 SIGN_TYPE = "SHA-1" #應用id APP_ID = '************' #下單api precreate_GATEWAY=https://openapi.alipay.com/gateway.do?

2.三個輔助函數:

#1:生成下單請求參數字符串 def make_payment_request(self,params_dict):  """  構造支付請求參數  :param params_dict:  :return:  """  query_str = self.params_to_query(params_dict,) # 拼接參數字符串  sign = self.make_sign(query_str) # 生成簽名  sign = urllib.quote(sign, safe='') #解決中文參數編碼問題  res = "%s&sign=%s" % (query_str, sign)  return res def params_to_query(self,params):  """  生成需要簽名的字符串  :param params:  :return:  """  """  :param params:  :return:  """  query = ""  dict_items = {}  for key, value in params.items():   if isinstance(value, dict) == True:    dict_items[key] = value    params[key] = "%s"  all_str = ''  for key in sorted(params.keys()): #把參數按key值排序:這是支付寶下單請求的參數格式規定   all_str = all_str + '%s=%s&' % (key, params[key])  all_str = all_str.rstrip('&')  biz_content_dict = dict_items['biz_content']  content_str = ''  for key in sorted(biz_content_dict.keys()):   if isinstance(biz_content_dict[key], basestring) == True:    content_str = content_str + '"%s":"%s",' % (key, biz_content_dict[key])   else:    content_str = content_str + '"%s":%s,' % (key, biz_content_dict[key])  content_str = content_str.rstrip(',')  content_str = '{' + content_str + '}'  query = all_str % content_str  return query def make_sign(self,para_str):  """  生成簽名  :param message:  :return:  """  private_key = OpenSSL.crypto.load_privatekey(OpenSSL.crypto.FILETYPE_PEM, open(   './路徑/private_key.txt').read()) #把私鑰存到一個文件里,加載出來【嘗試過用rsa模塊的方法加載私鑰字符串,會報格式錯誤。查看源碼得知,需要從文件流加載】  import sys  reload(sys)  sys.setdefaultencoding('utf-8') #這三句:解決簽名方法編碼報錯  sign = base64.encodestring(OpenSSL.crypto.sign(private_key, para_str, 'sha256'))  return sign            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新野县| 柞水县| 潢川县| 谷城县| 平江县| 新安县| 绥芬河市| 丰台区| 沈阳市| 子洲县| 且末县| 靖江市| 平原县| 罗定市| 辰溪县| 商河县| 赣榆县| 宁波市| 嘉黎县| 英德市| 太原市| 克拉玛依市| 富源县| 弋阳县| 三原县| 桦南县| 恩平市| 江阴市| 高青县| 定南县| 株洲县| 曲靖市| 佛坪县| 五家渠市| 基隆市| 漳平市| 永仁县| 汉中市| 香格里拉县| 依兰县| 汝南县|