咨询电话:
15628812133
08
2020/08

Python如何在项目中接入支付宝的资金预授权,介绍一下接入中遇到的坑

发布时间:2020-08-08 16:01:21
发布者:已经写了
浏览量:
0

最近都在使用Python做开发,开展了包括网站小程序的服务器,还有一些系统等等,踩了不少坑。今天就来说说使用Python对接支付宝的流程和对接时候遇到的一些让人比较头疼的问题

第一步:导入支付宝接口的sdk,有两种方法可以导入,一种是直接使用Python安装python-alipay-sdk

1.没安装过的直接pip install python-alipay-sdk

2.安装过的,升级一下版本 pip install python-alipay-sdk --upgrade

第二种的话直接去支付宝的开放平台下载SDK文件,将alipay文件夹所有文件放到项目里,两种方法都很简单

https://opendocs.alipay.com/open/54/103419/

Python环境的话还需要安装Crypto的包,直接pip install crypto

第二步:创建应用,应用需要支付宝后台进行审核,审核通过后会分配一个appid作为一个唯一标志(关键参数)。如果还没有创建完成应用的,可以使用支付宝的沙箱环境先进行测试开发,可以根据自身需求,先在沙箱环境中了解、组合和调试各种开放接口,进行开发调通工作

第三步:需要给我们的应用设置秘钥,秘钥分为公钥和私钥,生成秘钥需要下载支付宝的支付宝开放平台开发助手来生成,生成之后将公钥上传到对应的小程序,私钥的话自己需要保存好,需要特别说明的是,密钥长度选择RSA2,秘钥格式选择PKCS1(非JAVA适用),因为程序之前已经生成过了秘钥,所以就直接拿过来使用了,但是最后发现一直报错,原因就是秘钥选错了格式,Python不适用

blob.png

第四步:appid和秘钥已经获取到之后就可以进行代码的具体操作了,熟悉了之后还是很简单的,主要就是几个步骤,第一步根据需要调用接口去找对应的model,一般文件名跟接口的名称都是一致的,文件特别多最好是根据接口的文档去找文件,在Python环境下的话一个接口至少要导入两个接口文件model和request,然后就是通用的client文件,一般model文件是用来设置需要发送的参数等信息,request文件是用来发送请求和设置请求信息,设置完成之后用client调用execute发送即可得到支付宝返回的信息,返回的信息如果有错的话大部分都是参数设置的不对,多调试几次基本上就能搞定,最后贴在一张项目示例代码

blob.png

最后进行一波踩坑的总结吧:

1.如果遇到需要Python安装crypto包,安装了之后还是提示Crypto没有安装的话,手动把包文件的C改成大写

2.注意秘钥的格式,Python需要PKCS1(非JAVA适用)格式

3.如果发现一直报Appid错误,但是检查了之后发现Appid没有错,检查接口的请求地址是否填成了测试地址

4.支付宝请求接口内置有两种请求的方法,execute和sdk_execude需要仔细阅读接口文档选择对应的请求方式

返回列表