python-alipay-sdk
2021/5/17 12:25:27
本文主要是介绍python-alipay-sdk,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
使用第三方包来完成支付宝sdk调用:
安装
# 安装python-alipay-sdk
pip install python-alipay-sdk --upgrade
# 对于python2, 请安装2.0以下版本:
pip install python-alipay-sdk==1.1
生成密钥文件
openssl
OpenSSL> genrsa -out app_private_key.pem 2048 # 私钥 OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥 OpenSSL> exit
在支付宝上下载的公钥是一个字符串,你需要在文本的首尾添加标记位,若已有则不需要再添加
-----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY-----
实例:
def test(request): # 获取前端传来的订单id order_id = request.GET.get('order_id') data = { 'order_id': order_id } # 将订单id作为json格式返回 return JsonResponse(data=data) def alipay(request): # 获取订单id order_id = request.GET.get('order_id') # 在数据库中根据订单id查找对应的订单对象 order = Order.objects.get(id=order_id) # 订单价格 order_price = order.o_price # 订单商品 order_goods = OrderGoods.objects.filter(o_order_id=order_id) # 获取订单商品名字和数量,存在列表中 order_goods_list = [] for good in order_goods: order_goods_list.append('{}*{}'.format(good.o_goods.prodectlongname, good.o_goods_num)) # 创建alipei对象 alipay_client = AliPay( appid=ALIPAY_APPID, # 在settings中创建的支付宝appid,需要在支付宝官网生成应用之后获取appid app_notify_url=None, # 定义默认回调url app_private_key_string=APP_PRIVATE_KEY, # 在支付宝官网根据文档操作生成的应用私钥 alipay_public_key_string=ALIPAY_PUBLIC_KEY, # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥, sign_type="RSA2", # RSA 或者 RSA2 debug=False, # 默认False verbose=False, # 输出调试数据 config=AliPayConfig(timeout=15), # 可选, 请求超时时间 ) subject = str(order_goods_list) # 传给支付宝的订单信息 order_string = alipay_client.api_alipay_trade_page_pay( out_trade_no=order_id, # 订单id total_amount=order_price, # 订单金额 subject=subject, # 订单明细 return_url="https://opendocs.alipay.com/", # 支付完成后的跳转页面 notify_url="https://opendocs.alipay.com/" # 可选, 不填则使用默认notify url ) # 将订单信息发送给支付宝生成交易订单 return redirect('https://openapi.alipaydev.com/gateway.do?' + order_string)
$(function () { # 在html页面的支付按钮上添加点击事件 $("#alipay").click(function () { console.log('pay') var order_id = $(this).attr('order_id') # 调用test函数获取订单id $.getJSON('/axf/test/', {"order_id": order_id}, function (data) { # 将订单id作为路由参数传给服务器,生成支付宝订单 window.open('/axf/alipay/?order_id=' + data['order_id']) # 获取订单支付状态 $.getJSON('/axf/payed', {"order_id": order_id}, function (data) { console.log(data) window.open('/axf/mine_icon/',target="_self") }) }) }) })
这篇关于python-alipay-sdk的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器