Django实现支付宝支付
一 去支付宝申请
- 正式:营业执照
- 测试: 沙箱测试环境
APPID:2016092000554391
买家: esnrce2727@sandbox.com
登录和支付密码: 111111
b. 开发服务SDK
- SDK 官方
- github
pay.py
依赖: pip install pycryptodome
公钥私钥:
- 应用公钥
- 支付宝公钥
- 应用私钥
支付宝沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info
二 获得SDK并生成RSA密钥
1 下载阿里官方SDK
pip install alipay-sdk-python
2 生成一对商户RSA密钥
3 将公钥上传到支付宝后生成一个支付宝公钥
三 Django代码的实现
支付流程图
from django.shortcuts import render, redirect
from django.http import HttpResponse
from rest_framework.views import APIView
from rest_framework.response import Response
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.domain.AlipayTradePrecreateModel import AlipayTradePrecreateModel
from alipay.aop.api.request. AlipayTradePrecreateRequest import AlipayTradePrecreateRequest
from alipay.aop.api.domain.AlipayTradePagePayModel import AlipayTradePagePayModel
from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest
import time # Create your views here.
# 沙箱环境地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info # "https://openapi.alipaydev.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2" def ali_pay():
# 为阿里支付实例化一个配置信息对象
alipay_config = AlipayClientConfig(sandbox_debug=True)
# 初始化各种配置信息
# 阿里提供服务的接口
alipay_config.server_url = "https://openapi.alipaydev.com/gateway.do"
# 申请的沙箱环境的app_id
alipay_config.app_id = ""
# 商户的私钥
with open("keys/app_private_key.txt") as f:
alipay_config.app_private_key = f.read()
# 阿里的公钥
with open("keys/alipay_public_key.txt") as f:
alipay_config.alipay_public_key = f.read()
# 实例化一个支付对象并返回
alipay_client = DefaultAlipayClient(alipay_client_config=alipay_config)
return alipay_client class AliPayView(APIView):
def get(self, request):
return render(request, "pay.html") # 生成支付宝自带页面的API
def post(self, request):
# 得到阿里支付的实例化对象
client = ali_pay()
# 为API生成一个模板对象 初始化参数用的
model = AlipayTradePagePayModel()
# 订单号
model.out_trade_no = "pay" + str(time.time())
# 金额
model.total_amount = 8888
# 商品标题
model.subject = "测试"
# 商品详细内容
model.body = "支付宝测试"
# 销售产品码,与支付宝签约的产品码名称
model.product_code = "FAST_INSTANT_TRADE_PAY"
# 实例化一个请求对象
request = AlipayTradePagePayRequest(biz_model=model)
# get请求 用户支付成功后返回的页面请求地址
request.return_url = "http://140.143.63.45:8888/alipay_handler"
# post请求 用户支付成功通知商户的请求地址
request.notify_url = "http://140.143.63.45:8888/alipay_handler"
# 利用阿里支付对象发一个获得页面的请求 参数是request
response = client.page_execute(request, http_method="GET")
return redirect(response) class PayHandlerView(APIView): def get(self, request):
# return_url的回调地址
print(request.data)
# 用户支付成功之后回到哪
return HttpResponse("return_url测试") def post(self, request):
print(request.data)
# 用户支付成功 在这里修改订单状态以及优惠券贝里等等情况
return HttpResponse("notify_url")
Django实现支付宝支付的更多相关文章
- Django 对接 支付宝支付, 回调
平台 点击这里进入 蚂蚁金服开放平台 沙箱 点击这里进入 沙箱环境 初始界面 设置公钥 下载创建秘钥工具 1. 进入文档中心 这里 2. 选中 电脑网站支付 3. 进入后选中 API 列表 中的 统 ...
- Django实现支付宝支付(沙箱)
1.安装SDK 点击右侧沙箱当面付接入指导,之后可以看到一个下载SDK的按钮,点击后,会有python的SDK下载链接,但还是属于公测中,也可以通过在cmd里输入以下代码来安装. pip instal ...
- $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)
一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...
- 在django中实现支付宝支付(支付宝接口调用)
支付宝支付 正式环境:用营业执照,申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info 支付 ...
- Django实现支付宝付款和微信支付
支付宝支付和微信支付是当今互联网产品常用的功能,我使用Django Rest Framework实现了网页上支付宝支付和微信支付的一个通用服务,提供rpc接口给其他服务,包括获取支付宝支付页面url的 ...
- Django day35 redis连接池,redis-list操作,django中使用redis,支付宝支付
一:redis连接池, 二:redis-list操作, 三:django中使用redis, 四:支付宝支付
- python调用支付宝支付接口详细示例—附带Django demo代码
项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...
- django中使用事务以及接入支付宝支付功能
之前一直想记录一下在项目中使用到的事务以及支付宝支付功能,自己一直犯懒没有完,趁今天有点兴致,在这记录一下. 商城项目必备的就是支付订单的功能,所以就会涉及到订单的保存以及支付接口的引入.先来看看订单 ...
- django支付宝支付集成
概要 本文是关于django集成支付宝[电脑网站支付]功能的过程记录. 功能逻辑主要分为两块: 用户下单跳转至支付宝支付界面 支付成功的回调验证 本文用到的alipay-sdk是基于阿里开发文档htt ...
随机推荐
- MySQL 烂笔头 备份和还原
备份 mysqldump -u root -p testdb > d:/backupfile.sql 还原 mysql -u root -p testdb2 <d:/backupfile. ...
- Parallel Programming for FPGAs 学习笔记(1)
Parallel Programming for FPGAs 学习笔记(1)
- LVM快照备份与恢复
简介 最近在做数据备份方面的工作,用到两个工具,一个是dd,而另一个是lvm的快照(snapshot).由于数据比较大,直接是用dd非常耗时,而lvm的快照可以在几秒内轻松搞定,而且可以达到实时的 ...
- php调用API支付接口 可个人使用,无需营业执照(使用第三方接口,调用的天工接口。)
首先访问 https://charging.teegon.com/ 注册账号, 找到开发配置 记下client_id和client_secret. 点击 天工开放平台 点击天工收银 点击 S ...
- echars柱状图修改每条柱的颜色
在实际开发中,可能会需要到柱状图内某个柱需要特殊颜色表示,我这里的应用是排名,突出显示出当前的数据. 在Color参数中添加一个方法可以任意返回需要的颜色值 function (params) { i ...
- Power Designer 转C#实体类方法
1.打开Power Designer菜单 Tools,选择如图 2.弹出方框中选择PD安装目录下的如图地址 3.object language选择正确目录后,可选如图语言,如C#.再填写name ...
- Redis 服务端配置——Could not connect to Redis at 127.0.0.1:6379: Connection refused
[root@centoszang 桌面]# redis-cli Could : Connection refused Could : Connection refused not connected& ...
- solr字段压缩属性compressed新版本已经移除
solr字段压缩属性compressed新版本已经移除 可能是考虑到压缩意义不大还减少搜索效率,所以去掉了.而且好像没有替代属性.
- 红黑树Python实现
# coding=utf-8 # 红黑树Python实现 # 颜色常量 RED = 0 BLACK = 1 def left_rotate(tree, node): if not node.right ...
- FTP管理常用命令
#新增用户liuhui,指定群组为groupa,附加群组为groupb,家目录为/ftp/groupbuseradd -g groupa -G groupb -d /ftp/groupb linhui ...