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实现命令行有道词典的方法示例
Jan 31 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
对python添加模块路径的三种方法总结
Oct 16 Python
python读写csv文件实例代码
Jul 05 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
浅析Python __name__ 是什么
Jul 07 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
python属于哪种语言
Aug 16 Python
Python虚拟环境virtualenv创建及使用过程图解
Dec 08 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
php UTF8 文件的签名问题
2009/10/30 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
Js基础学习资料
2010/11/23 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
js选择器全面解析
2016/06/27 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
跟老齐学Python之网站的结构
2014/10/24 Python
python一键去抖音视频水印工具
2018/09/14 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
学生励志演讲稿
2014/01/06 职场文书
留学推荐信写作指南
2014/01/25 职场文书
养成教育经验材料
2014/05/26 职场文书
作风建设整改方案
2014/10/27 职场文书
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python