前言
在一些业务开发中会遇到在线支付的需求。因为这个功能涉及到钱,在开发过程中难免存在调试障碍。好在国内的主流支付平台如支付宝和微信支付都已经提供了沙箱环境,在这个沙箱环境中可以很方便的对接入的支付功能进行调试和开发。
本文会以Python3为开发语言接入支付宝沙箱支付功能为例进行讲解,力争写出一个完善详实的操作指南,不尽之处,欢迎在评论区留言。
官方文档
沙箱环境是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。
沙箱为开放的产品提供 有限功能范围 的支持,可以覆盖产品的绝大部分核心链路和对接逻辑,便于开发者快速学习、尝试、开发和调试。
官方文档对大部分操作写的都很详细,按照文档操作基本可以解决大部分问题。
登录沙箱支付控制台后,会提供沙箱支付的账号和appid已经应用公钥,应用私钥需要使用支付宝开发平台密钥工具生成。
在做完这些准备工作后就可以在代码中进行沙箱支付接入实现了。
沙箱支付控制台
登录沙箱支付控制台之后你看到的界面如下: 同时可以拿到相关的沙箱账号,切记这里还需要配合下载安装支付宝沙箱版扫码才能使用。
重要:这里接口加签方式选自定义
公私钥配置
进入到支付宝沙箱支付控制台,点击沙箱应用。
公钥是基于私钥生成的,可解密,但是私钥不行。
使用支付宝开发平台密钥工具,生成支付宝公私钥。
最后在项目中新建 private_key.txt
和 public_key.txt
这两个文件,把私钥和公钥内容粘贴到对应的文件中,供SDK使用。
注意,因为公钥、私钥的内容需要放到如下文本中间:
公钥
-----BEGIN PUBLIC KEY-----
这里放你的公钥
-----END PUBLIC KEY-----
私钥
-----BEGIN PRIVATE KEY-----
这里放你的私钥
-----END PRIVATE KEY-----
实现
安装SDK
这里推荐使用 python-alipay-sdk,这个模块对支付宝官方的接口做了封装,使用起来及其简单方便。这是一个开源项目,使用的人不少,有1.2k的star,文档也很简洁。
安装依赖
pip install python-alipay-sdk
封装支付类
新建 alipay.py
文件,写入如下代码:
这里需要注意:private_key.txt
、public_key.txt
这两个文件的路径。
from alipay import AliPay
'''
# 初始化支付对象
out_trade_no 商品订单号 唯一的
total_amount 商品价格
subject 商品的名称
return_url 同步回调网址--用于前端,付成功之后回调
'''
def alipay (out_trade_no, total_amount, subject, return_url):
# 实例化支付类
alipayCase = AliPay(
appid = 'xxxxxxxxx', # 换成你自己的
app_notify_url=None, # 默认回调 url
app_private_key_string = open("private_key.txt").read(),
alipay_public_key_string = open("public_key.txt").read(),
sign_type = 'RSA2', # RSA 或者 RSA2
debug = True, # 默认 False,这里设为True SDK内部就会走沙箱支付,False就是正常支付
verbose = False # 输出调试数据
)
# 生成收款二维码
alipayQRCode = alipayCase.api_alipay_trade_precreate(
out_trade_no = out_trade_no,
total_amount = total_amount,
subject = subject,
notify_url = return_url
)
return alipayQRCode['qr_code']
调用支付
下面的实例代码调用了上面封装的支付函数,通过接口把收款二维码返回给前台。
这个例子使用的是
django
框架,ctx.response
是框架提供的响应函数,明白意思即可。
from alipay import alipay
def Alipay (self, ctx):
"""
支付宝支付API
@param {Object} ctx http请求上下文
"""
print("===================支付宝=====================")
payUrl = alipay(
out_trade_no = str(int(time.time() * 1000)),
total_amount = ctx.query['pay_money'],
subject = ctx.query['goods_name'],
return_url = ''
)
return ctx.response(json.dumps({"result": payUrl}, ensure_ascii=False))
总结
本文演示了如何使用Python3做支付宝沙箱支付功能,简单介绍了官方文档中沙箱支付的配置和使用,指出使用过程中需要注意的点。
最后给出了一个沙箱支付应用的实例,从SDK选择和安装,到封装支付类和业务中调用,力求将支付宝沙箱支付功能操作讲解清晰。
最后的最后,不要用官方SDK!不要用官方SDK!不要用官方SDK!
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码免费领取【保证100%免费
】