当前位置:主页 > python教程 > python实现支付宝转账接口

如何使用python实现支付宝转账接口

发布:2020-02-10 18:19:44 145


给网友们整理Python相关的编程文章,网友孙奇邃根据主题投稿了本篇教程内容,涉及到python、支付宝、python实现支付宝转账接口相关内容,已被162网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

python实现支付宝转账接口

由于工作需要使用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如何查找list中的某个元素的所有的下标

    发布:2021-05-21

    今天小编就为大家分享一篇Python 查找list中的某个元素的所有的下标方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • Python7个爬虫小案例详解(附源码)中篇

    发布:2023-03-04

    这篇文章主要介绍了Python7个爬虫小案例详解(附源码)中篇,本文章内容详细,通过案例可以更好的理解爬虫的相关知识,七个例子分为了三部分,本次为中篇,共有二道题,需要的朋友可以参考下


  • Python 相对路径和绝对路径及写法演示

    发布:2023-04-14

    这篇文章主要介绍了Python 相对路径绝对路径的相关知识,结合实例代码介绍了Python 相对路径、绝对路径的写法实例演示,需要的朋友可以参考下


  • Python3+django2.0+apache2+ubuntu14部署网站上线的方法

    Python3+django2.0+apache2+ubuntu14部署网站上线的方法

    发布:2022-06-23

    为网友们分享了关于Python3的教程,这篇文章主要介绍了Python3+django2.0+apache2+ubuntu14部署网站上线的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • python或者的表示方式和用法

    发布:2019-06-28

    python中或者用“or”表示,逻辑表达式为x or y。​Python语言支持逻辑运算符,假设变量a为10, b为20,那么(a or b) 则返回10。


  • python3 pandas 如何读取MySQL数据和插入

    发布:2020-02-19

    下面为大家分享一篇python3 pandas 读取MySQL数据和插入的实例,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧


  • opencv对python3的支持

    发布:2020-01-23

    支持。opencv_python-3.1.0-cp34-cp34m-win_amd64.whl。这就是用于python3.1版本的opencv库。除此之外还有其他版本的就不一一举例了,请网上详查。


  • python方法如何实现字符串反转

    发布:2023-04-25

    这篇文章主要介绍了python方法如何实现字符串反转问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


网友讨论