python实现支付宝转账接口


Posted in Python onMay 07, 2019

由于工作需要使用python开发一个自动转账接口,记录一下开发过程。

首先需要在蚂蚁金服上申请开通开发者账户,有了开发者账户就可以使用沙箱进行开发了。
在开发之前我们需要在沙箱应用中填写密钥,密钥的获取可以使用阿里提供的工具包自动生成。

python实现支付宝转账接口

前期准备工作完成了,接下来是编写代码部分。主要用到了python-alipay-sdk库,使用pip安装即可,如果安装的过程中遇到问题推荐使用Anaconda(crypto这个库安装了我好久没成功,最后换成Anaconda环境了)

from datetime import datetime
from alipay import AliPay
 
 
class Payment():
 def __init__(self, appid, url):
  '''
  支付接口初始化
  :param appid: 商户appid
  :param url: 支付宝接口url
  '''
  self.app_private_key_string = open("app_private_key.txt").read() # 应用私钥(默认从两个TXT文件中读取)
  self.alipay_public_key_string = open("alipay_public_key.txt").read() # 支付宝公钥
  self.alipay = AliPay(
   appid=appid,
   app_notify_url=url,
   app_private_key_string=self.app_private_key_string,
   alipay_public_key_string=self.alipay_public_key_string,
   sign_type="RSA2",
   debug=True
  )

初始化的时候需要用到appid、应用私钥以及支付宝公钥,appid和支付宝公钥可在沙箱应用中看到,应用私钥则需要在刚刚生成密钥工具包的目录下查看

python实现支付宝转账接口

获取两个密钥之后可以单独写入到两个TXT文件中然后读取文件内容来获取,以便以后的更改,在写入TXT文件的过程中不能只是单纯的将密钥复制过去,需要再第一行和最后一行加入

-----BEGIN PUBLIC KEY-----
你的密钥
-----END PUBLIC KEY-----

要不然会出现这个错误

python实现支付宝转账接口

第一次接触这玩意,不知道具体的格式,找了好久的问题,最后在源码的这个地方发现了问题,必须以这个开头

python实现支付宝转账接口

公共请求参数部分至此就完成了,接下来就是请求参数了,按照开发文档上有四个是必须的:out_biz_no、payee_type、payee_account、amount  对应的意思分别是:商户转账唯一订单号、收款方账户类型、收款方账户、转账金额。还有部分参数是可选的,在下面的代码中交代了。

def pay(self, payee_account, amount, payee_real_name=None, remark=None, payer_show_name=None,
   payee_type="ALIPAY_LOGONID"):
  '''
  发起转账
  :param payee_account: 收款方账户
  :param amount: 转账金额
  :param payee_real_name:
  :param remark: 收款方姓名
  :param payer_show_name: 转账备注
  :param payee_type: 付款方姓名
  :return:
  '''
  result = self.alipay.api_alipay_fund_trans_toaccount_transfer(
   datetime.now().strftime("%Y%m%d%H%M%S"),
   payee_type=payee_type, # 收款方账户类型
   payee_account=payee_account, # 收款方账户
   amount=amount, # 转账金额
   payee_real_name=payee_real_name, # 收款方姓名(可选,若不匹配则转账失败)
   remark=remark, # 转账备注
   payer_show_name=payer_show_name # 付款方姓名
 
  )
  # result={'code':'10000','msg':'Success','order_id': '','out_biz_no': '', 'pay_date': '2017-06-26 14:36:25'}
  # 接口文档:https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
 
  if result['code'] == '10000':
   if result['msg'] == "Success":
    print("转账成功" + " 交易单号:" + result["order_id"])
 
  else:
   print(result)
   print(result['sub_msg'])

到这这个代码的基础部分就此完成:

python实现支付宝转账接口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用 Selenium 实现网页截图实例
Jul 18 Python
Python3字符串学习教程
Aug 20 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
python中列表和元组的区别
Dec 18 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
Numpy之random函数使用学习
Jan 29 Python
python实现文件的备份流程详解
Jun 18 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
python日志模块logbook使用方法
Sep 19 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
Python将字典转换为XML的方法
Aug 01 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 #Python
python验证身份证信息实例代码
May 06 #Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 #Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 #Python
Python两台电脑实现TCP通信的方法示例
May 06 #Python
python3利用Socket实现通信的方法示例
May 06 #Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 #Python
You might like
咖啡的种类和口感
2021/03/03 新手入门
php session安全问题分析
2011/06/24 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
Yii2中datetime类的使用
2016/12/17 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
21行Python代码实现拼写检查器
2016/01/25 Python
Python绘制七段数码管实例代码
2017/12/20 Python
简述Python2与Python3的不同点
2018/01/21 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
作风转变年心得体会
2014/10/22 职场文书
教师求职自荐信
2015/03/26 职场文书
单身证明格式样本
2015/06/15 职场文书
期中考试后的感想
2015/08/07 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript