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基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 Python
详解tensorflow实现迁移学习实例
Feb 10 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
pycharm安装及如何导入numpy
Apr 03 Python
Python ini文件常用操作方法解析
Apr 26 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
python如何读取.mtx文件
Apr 22 Python
Python中的嵌套循环详情
Mar 23 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
模仿OSO的论坛(一)
2006/10/09 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
8个出色的WordPress SEO插件收集
2011/02/26 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
玩转方法:call和apply
2014/05/08 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
js数据类型检测总结
2018/08/05 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
js实现打字小游戏
2019/12/17 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
大学生大二自我鉴定
2013/10/28 职场文书
倡议书范文格式
2014/05/12 职场文书
企业挂职心得体会
2014/09/10 职场文书
初三英语教学计划
2015/01/23 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
关于环保的广播稿
2015/12/17 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js