Django项目订单接入支付宝
1.首先下载所需要的包
pip install python-alipay-sdk
2.在视图函数里面引入所需要的类
from alipay import AliPay
3.利用这个类创建一个实例对象
ali_pay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url=None,//使用默认回调的地址
//公钥的路径
app_private_key_path=os.path.join(settings.BASE_DIR,'keys/pri'),
//私钥的路径
alipay_public_key_path=os.path.join(settings.BASE_DIR,'keys/pub'),
//使用的加密方式
sign_type='RSA2',
//默认是False 测试环境配合沙箱环境使用 如果是生产环境 将其改为True
debug=False)
keys是本人建立在本项目目录下的文件夹
那pri和pub的获取需要自己去获取
首先要去蚂蚁金服开放平台,可以用支付宝进登录
点上面箭头所指进入下一级界面
点击上图中的生成方法
下载对应版本的压缩包解压后运行
在对应的文件下会生成两个对应的文件,在这key文件夹下建立两个文件,不设置后缀,一个用来存放公钥,一个用来存放私钥,把生成的公钥和私钥分别粘贴在这两个文件夹下
粘贴的时候在文件的开头和结尾加入下列代码
//私钥
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
//公钥
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
4.网站端的支付需要跳转到支付界面,进行支付
order_string = ali_pay.api_alipay_trade_page_pay(
//订单编号
out_trade_no=order.o_id,
//订单总额
total_amount=total_price,
//订单描述信息
subject='天天生鲜购物订单-{}'.format(order.o_id),
//回调地址,订单支付成功后回调的地址
return_url='https://www.baidu.com',
)
5.拼接支付地址
url = settings.ALIPAY_URL + '?' +order_string
6.最后就是返回url地址
7.监听订单状态是否支付
是根据订单号检查订单是否被支付的,这个订单号的获取就需要自己想办法传到后台的
当后台获取到订单号时
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url=None,
app_private_key_path=os.path.join(settings.BASE_DIR,'keys/pri'), alipay_public_key_path=os.path.join(settings.BASE_DIR,'keys/pub'),
sign_type='RSA2',
//沙箱环境下没有查询订单服务的
debug=True)
while True:
response = alipay.api_alipay_trade_query(o_id)
# code 40004 支付订单未创建
# code 10000 trade_status WAIT_BUYER_PAY 等待支付
# oode 10000 trade_status TRADE_SUCCESS 支付成功
# response 是字典
code = response.get('code')
trade_status =response.get('trade_status')
if code == '10000' and trade_status == 'TRADE_SUCCESS':
# 支付成功
order = OrderInfo.objects.get(id=o_id)
order.o_pay = True
order.save()
# 返回支付结果
return JsonResponse({
'status':1,
'msg':'支付成功'
})
elif (code == '10000' and trade_status =='WAIT_BUYER_PAY') or code == '40004':
# 表示支付暂时没有完成
continue
else:
return JsonResponse({
'status':0,
'msg':'支付失败'
})
Django项目订单接入支付宝的更多相关文章
- Django订单接入支付宝
1.. 去支付宝申请 https://open.alipay.com/platform/home.htm 注:因为创建应用正式接入支付宝需要营业执照,所以我们可以使用沙箱环境来测试. 2. 一次选择管 ...
- 接入支付宝出现交易订单处理失败,请稍后再试(ALI64)的错误【转】
接入第三方平台的时候,有时虽然按照文档来做,但是总是还会有各种各样的问题. 上次在接入支付宝的时候就碰到了交易订单处理失败,请稍后再试(ALI64)这样的错误,后来经过排查和总结,一般来讲这种问题都是 ...
- Django项目纪要
开发流程 公司高层 项目立项 | 市场部门 需求分析-->需求分析说明书, 需求规格说明书 | 产品部门 产品原型-->产品 UI 前端 后端 测试 移动端 | |------------ ...
- python-django框架-电商项目-订单模块开发_20191125
python-django框架-电商项目-订单模块开发 提交订单页面: 在购物车中点击提交订单,就应该到达提交订单页面了, 显示: 1,收获地址, 2,支付方式 3,用户购买的商品信息,数量,小计, ...
- TP3.2.3 接入支付宝
TP3.2.3 接入支付宝 项目接入支付宝支付了,在做这个给我的感觉是,方便 ,毕竟是老马的产品是吧, 话不多说 , 首先我们先找到官方的SDK ,不想去找的小伙伴复制此链接 https://doc ...
- ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付接口及同步跳转及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET ...
- 【转载】ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇
转自:http://www.cnblogs.com/essenroc/p/8627775.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付 ...
- 前后端分离djangorestframework—— 接入支付宝支付平台
支付宝 简介 支付宝是什么不用多说了,本次教程适合初学者 前提准备 话不多说,干就完了 1.注册开发者账号,设置公钥私钥 首先进入支付宝开发者平台:传送门 ,有账号直接登录,没账号用你平时用来付款收钱 ...
- 【PHP后台】接入支付宝
我使用PHP主要是为客户端做后台使用,并不会做前端网页. 这两天因为公司项目需要,必须接入支付功能,而支付宝当然首当其冲,考虑迭代版本的需要,首先接入支付宝功能,其他的支付功能以后迭代版本的时候 ...
随机推荐
- SolrCloud6.1.0之SQL查询测试
Solr发展飞快,现在最新的版本已经6.1.0了,下面来回顾下Solr6.x之后的一些新的特点: (1)并行SQL特性支持,编译成Streaming 表达式,可以在solrcloud集群中,并行执行 ...
- css 写一个向右的箭头
经常写移动端页面时会用到向右的箭头,之前都是用图片,突然想到用css应该也能写,于是一搜还确实有 width: 7px; height: 7px; border-top: 2px solid #fff ...
- swing 托盘
直接上方法, 不过有些问题要注意,最后会说明! private void systemTray() { if (SystemTray.isSupported()) { // 判断系统是否支持托盘功能. ...
- python的update方法
b = {"c":0, "position":{}} b["position"]["IF"] = {} print(b) ...
- 【JZOJ6384】珂学家
description analysis 注意配出来的饮料不可以再配成其他饮料,所以肯定有\(O(n^2)\)的枚举 而且可口度两两互不相同,搞得我以为这是神仙题 考虑把两个试剂\([l_1,r_1] ...
- nginx css,js合并插件,淘宝nginx合并js,css插件
先下载Nginx_concat_module,下载后把它放在/usr/local/src/文件夹中,新建文件夹nginx-http-concat把下载的config ngx_http_concat_ ...
- 手工编写JavaWeb项目
手工编写JavaWeb项目 一.打开Tomcat服务器 二.编写简单的web项目 三.访问项目 并且,tomcat服务器也是可以直接访问.txt的,其实就和其它的web服务器一样,什么都可以访问,和之 ...
- 机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源
机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源 相关主题 在信息时代,公司和个人的成功越来越依赖于迅速 ...
- VS2010-MFC(常用控件:图片控件Picture Control)
转自:http://www.jizhuomi.com/software/193.html 本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示 ...
- SSL和TLS漏洞验证
工具下载:git clone https://github.com/drwetter/testssl.sh.git 实验环境:192.168.1.22(bee-box v1.6) 192.168.1. ...