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实现一个简单的线程池
Apr 07 Python
Python中的列表知识点汇总
Apr 14 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
使用python 写一个静态服务(实战)
Jun 28 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
python 如何停止一个死循环的线程
Nov 24 Python
python 简单的调用有道翻译
Nov 25 Python
Python环境配置实现pip加速过程解析
Nov 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/02 无线电
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
php实现三级级联下拉框
2016/04/17 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
javascript版2048小游戏
2015/03/18 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
python爬虫爬取网页表格数据
2018/03/07 Python
python利用微信公众号实现报警功能
2018/06/10 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
python实现zabbix发送短信脚本
2018/09/17 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
上班离岗检讨书
2014/01/27 职场文书
中学家长会邀请函
2014/02/03 职场文书
财产公证书格式
2014/04/10 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
2014年保卫工作总结
2014/12/05 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers