1,环境

ubuntu16.04,python3.6, alipay-sdk-python(3.20)

2,安装包

alipay提供了python包,封装了很多api调用、签名验证等功能,直接

pip install alipay-sdk-python

因为该包依赖其他几个包,在安装pycrypto包时在我这环境下报错‘fatal error: Python.h: No such file or directory’

解决方法:apt-get install python3.6-dev, 如果python版本不是3.6 改成对应的就可以了

3,准备

注册支付宝开发账户,并申请相应的功能等工作

注意:开发者代码中用到的密钥有两个,一个公钥一个私钥。但是千万注意他们不是一对,

公钥ALIPAY_PUBLIC_KEY是支付宝公钥,由支付宝提供,用来验证支付宝发过来的消息验证用的;

私钥APP_PRIVATE_KEY是自己生成的,对应的公钥填到支付宝那边的,用来给向支付宝发送消息签名用的,支付宝用你提供的公钥对你发送的消息进行验证

3,后端代码实现

a, 实现生成二维码收款逻辑,返回的response_url直接打开就会访问alipay生成对应的二维收钱码(当然也可以不选二维码)

from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.domain.AlipayTradePagePayModel import AlipayTradePagePayModel
from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest
from alipay.aop.api.util.SignatureUtils import verify_with_rsaconfig = AlipayClientConfig()
config.server_url =
config.app_id =
config.app_private_key=
config.alipay_public_key=model = AlipayTradePagePayModel()
model.out_trade_no=
model.total_amount=
model.subject=
model.body=
model.product_code=ali_request = AlipayTradePagePayRequest(biz_model=model)
ali_request.notify_url =
ali_request.return_url =client = DefaultAlipayClient(alipay_client_config=config)response_url = client.page_execute(ali_request, http_method='GET')

model.subject设置的内容会显示在支付页面,可以写产品名,或跟用户相关的显示。如下图所示(圈红线位置)

b, 支付成功跳转(前面设置的return_url)

这是个GET请求,编写没有难度,但是不可靠(容易被伪造)

c, 支付结果异步通知

支付结果可以通过接口主动向阿里云查询获得,也可以接受alipay发送的结果,此处采用接受alipay发送的异步通知结果。

 def webhook_alipay(): data = request.form.to_dict()#sign, sign_type 都要从数据中取出,否则签名通不过sign, sign_type = data.pop('sign'), data.pop('sign_type')params = sorted(data.items(), key=lambda e: e[0], reverse=False) message = "&".join(u"{}={}".format(k, v) for k, v in params).encode() alipay_public_key = os.environ.get('ALI_ALIPAY_PUBLIC_KEY')try:if verify_with_rsa(alipay_public_key.encode('utf-8').decode('utf-8'), message, sign):...#一定是success这个单词,其他的alipay不认return Response('success')else:... except:...

注意坑:alipay发送的post请求header是application/x-www-form-urlencoded;text/html;charset=utf-8 ,因此在flask中通过request.get_json(),不仅取不到数据,而且会自动返回none,导致后面逻辑都不会运行,不知道的以为没收到有通知。建议用request.form

4,沙箱测试设置

https://docs.open.alipay.com/200/105311

沙箱测试和正式的类似但是要重新申请,然后另设密钥对。

另外沙箱钱包目前只有Android版的,所以要完整测试备一台Android手机吧。。。

5,关于密钥

alipay-sdj-python在调用函数签名或验证时, 会自动判断是否有‘-----BEGIN RSA PRIVATE KEY-----’然后填补, 因此可有可无。

alipay支付宝支付的python实现(flask)相关推荐

  1. iOS - AliPay 支付宝支付

    1.支付宝支付申请 支付宝支付官方签约集成指引 支付宝APP支付官方集成指引 蚂蚁金服开放平台 1.1 支付宝 APP 支付申请步骤 APP 支付:APP 支付是商户通过在移动端应用 APP 中集成开 ...

  2. 手机APP支付--整合支付宝支付控件

    长话短说,本文根据支付宝官方说明文档,简单总结下,并且说明下开发过程碰到的问题以及该如何解决. 整合步骤: 1 登录商家服务网站,下载开发包,地址:https://b.alipay.com/order ...

  3. ThinkPHP5.0+APP+支付宝支付 服务端开发

    工作环境,支付宝账号是公司的,app应用和秘钥配置都是我自己申请的,这其中的流程暂且跳过. 一.准备工作 appid.应用私钥.应用公钥.支付宝公钥 二.配置文件 'alipay'=>['app ...

  4. 【支付宝支付】APP支付

    前瞻: 支付文档和SDK链接 代码实现 预先下订单 //引入sdkrequire($_SERVER['DOCUMENT_ROOT'].'/../vendor/aop/AopClient.php');r ...

  5. python支付宝自动支付_python 调用支付宝支付

    支付宝接口集成,本地环境调试支付请求 1.首先登录 蚂蚁金服网站,也就是支付宝开发者平台 登录蚂蚁金服开发者平台后,创建沙箱应用 开发者平台 也就是支付宝给开发者提供的调试环境应用 沙箱测试应用 2. ...

  6. python支付宝支付_python 调用支付宝支付

    支付宝接口集成,本地环境调试支付请求 1.首先登录 蚂蚁金服网站,也就是支付宝开发者平台 登录蚂蚁金服开发者平台后,创建沙箱应用 开发者平台 也就是支付宝给开发者提供的调试环境应用 沙箱测试应用 2. ...

  7. python 支付宝接口_python调用支付宝支付接口流程

    项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...

  8. Python实战项目-10文件存储/支付宝支付/支付成功回调接口

    每天进步一点点,关注我哦,每天分享测试技术文章 文件存储 视频文件存储在某个位置,如果放在自己服务器上 放在项目的media文件夹 服务器上线后,用户既要访问接口,又需要看视频,都是使用一个域名和端口 ...

  9. python 支付宝支付 无效根证书_python实现银联支付和支付宝支付接入

    本文实例为大家分享了python银联支付和支付宝支付接入的具体代码,供大家参考,具体内容如下 前置条件:需要安装Python的OpenSSL模块,我使用的版本是16.1.0,可以使用pip insta ...

最新文章

  1. 值得研究的 开源图形引擎
  2. 以太坊测试链环境node.js版本
  3. FFmpeg代码导读系列(一,下半部)----HEVC在RTMP中的扩展
  4. eslint airbnb 不允许尾随逗号
  5. 腾讯开源视频动作检测算法DBG,打破两项世界纪录!
  6. Mybatis mapper代理SqlMapConfig.xml配置详解
  7. spass是Java吗_Java SpassFingerprint类代码示例
  8. tp 框架防sql注入
  9. Android实现蝴蝶动画,抖音蝴蝶特效怎么弄的?抖音最近很火的蝴蝶特效制作|安卓手机给视频添加蝴蝶特效...
  10. 苹果呼叫转移设置不了_0广告,支持苹果,甜美小姐姐or磁性小哥哥做助理!
  11. linux 磁盘坏道修复,linux系统下检测硬盘上的坏道和坏块
  12. HTML指南针源码zip,指南针指标公式源码
  13. matlab中min函数
  14. 大家都见过哪些让你虎躯一震的代码?
  15. Elastic Search Java API(文档操作API、Query DSL查询API)、es搜索引擎实战demo
  16. 乱七八糟:迟到的入职两年个人总结
  17. 经典解压缩软件 WinRAR 5.71 无广告版
  18. 如何将PDF压缩突破限制大小
  19. SSM+基于Vue框架的在线投票系统的设计与实现 毕业设计-附源码221604
  20. hanoi塔问题解析(一) c++实现

热门文章

  1. ubuntu 輸入法设置
  2. 操作系统课程设计报告总结(下)
  3. 微信 小程序 web-view 链接页面的请求无效
  4. 如何通过云模板创建表单?丨三叠云教程
  5. “华为杯”研究生数学建模竞赛2007年-【华为杯】D题:邮政运输网络中的邮路规划和邮车调度(附获奖论文)
  6. js 浏览器新窗口打开
  7. MSSQL Server 数据库可疑、置疑修复方法
  8. Altium Designer、EAGLE、OrCAD、Proteus、KiCAD、LTspice、NI Multisim这些软件各有什么优缺点...
  9. ADS仿真加载线型移相器
  10. 关于JavaScript编译原理以及作用域的深入探讨