django-支付宝支付

安装python-alipay-sdk

pip install python-alipay-sdk --upgrade

配置

视图函数orders/views.py

# 订单支付
# /order/pay
from alipay import AliPay, ISVAliPay
import os
from django.conf import settings
class OrderPayView(View):
    def post(self, request):
        ‘‘‘支付页面‘‘‘
        # 判断用户是否登录
        user = request.user
        if not user.is_authenticated():
            return JsonResponse({‘res‘:0, ‘errmsg‘:‘用户尚未登录‘})
        # 接收订单id
        order_id = request.POST.get(‘order_id‘)
        # 校验订单id
        if not order_id:
            return JsonResponse({‘res‘:1, ‘errmsg‘:‘无效的订单id‘})
        # 查询订单信息
        try:
            order = OrderInfo.objects.get(order_id=order_id, user=user, pay_method=3, order_status=1)
        except OrderInfo.DoesNotExist:
            return JsonResponse({‘res‘:2, ‘errmsg‘:‘订单错误‘})

        # 业务处理 使用python sdk调用支付宝的支付接口
        # 支付宝信息   不能放在settings里 会报错
        alipay = AliPay(
            appid="2016101200665304",
            app_notify_url=None,  # 默认回调url  如果为空的话不能用‘‘ 要用None
            # 个人私钥
            app_private_key_string=os.path.join(settings.BASE_DIR, ‘apps/orders/app_private_key.pem‘),
            # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
            alipay_public_key_string=os.path.join(settings.BASE_DIR, ‘apps/orders/alipay_public_key.pem‘),
            # 加密方式
            sign_type="RSA2",  # RSA 或者 RSA2
            # 沙箱是True 正式环境是False
            debug=True  # 默认False
        )
        # 调用支付接口
        # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string 实际地址
        # 沙箱地址 https://openapi.alipaydev.com/gateway.do? + order_string  沙箱地址在alipay后面加上dev
        total_price = order.total_price + order.transit_price  # Decimal
        order_string = alipay.api_alipay_trade_page_pay(
            out_trade_no=order_id,  # 订单id
            total_amount=str(total_price),  # 支付总金额 因为Decimal格式不能序列化 所以先转成字符串
            subject=‘天天生鲜%s‘%order_id,
            return_url=None,
            notify_url=None  # 可选, 不填则使用默认notify url
        )
        # 返回应答
        pay_url = ‘https://openapi.alipaydev.com/gateway.do?‘ + order_string
        return JsonResponse({‘res‘:3, ‘pay_url‘:pay_url})

配置路由urls.py

from django.conf.urls import url
from orders.views import OrderPlaceView, OrderCommitView, OrderPayView

urlpatterns = [
    url(r‘^place$‘, OrderPlaceView.as_view(), name=‘place‘),  # 提交订单页面
    url(r‘^commit$‘, OrderCommitView.as_view(), name=‘commit‘),  # 提交订单处理
    url(r‘^pay$‘, OrderPayView.as_view(), name=‘pay‘),  # 订单支付

]

原文地址:https://www.cnblogs.com/yifengs/p/11691423.html

时间: 2024-10-15 16:29:39

django-支付宝支付的相关文章

django实现支付宝支付

1.沙箱环境 蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联调的辅助环境.沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑. 在开发者应用上线审核前,开发者可以根据自身需求,先在沙箱环境中了解.组合和调试各种开放接口,进行开发调通工作,从而帮助开发者在应用上线审核完成后,能更快速.更顺利的进行线上调试和验收工作. 详细介绍---->点我点我 1.1配制沙箱环境 登录支付宝平台,点击自研开发者,点击导航的开发者中心-->研发服务,填写相关信息,完成实名认证 点击“开放平台-开

如何用django实现用支付宝支付

一,前言 我们需要知道向支付宝申请支付功能是需要去申请商户号的(企业申请的是商户号),并且是需要企业的营业执照.然而我们个人可以向支付宝申请一个沙箱环境(也就是测试环境来模拟支付) 申请地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info 二,需要用的模块 由于在支付过程中,一切信息都是需要保密的,因此所有的数据都要进行加密处理: 加密的方式被分为两种,对称加密与非对称加密 对称加密:加密密钥和解密秘钥用的是同一个 非对称加密

支付宝支付相关开发

开发支付宝的支付功能 1.首先去开放平台进行注册 这里有一个设置应用公钥: 使用支付宝的密钥生成工具进行密钥生成: 把应用公钥复制到沙箱页面内让支付宝生成一个支付宝公钥: 第二步骤: 使用支付宝的官方提供的SDK进行URL的加密: 这里是从GitHub上面找到的python版本的,支付宝官方没有python版本的. pay.py from datetime import datetime from Crypto.PublicKey import RSA from Crypto.Signature

支付宝支付和微信消息推送

支付宝支付 如果想在网站上,通过扫码支付宝收钱,你必须到支付宝网站https://openhome.alipay.com/platform/home.htm申请账号,但是正式的,需要你提供营业执照,现在没有,也不要紧,支付宝还提供一个沙箱的测试环境 服务商注册:业务只是网站上收个钱,注册一个支付系统服务商就可以了 注册完成后,进入我的蚂蚁金服开方平台首页,进行应用创建就可以了(这是正式的,需要营业执照) 程序开发使用时,你只需要按照支付宝提供的接口规则和加密方法进行数据传递就可以了 现在没有营业

支付宝支付模板

Url from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('/update_order/', views.update_order), path('/pay_result/', views.pay_result), path('test/', views.TestVie

支付-支付宝支付简单了解

支付宝支付 # 1.在沙箱环境下实名认证:https://openhome.alipay.com/platform/appDaily.htm?tab=info # 2.电脑网站支付API:https://docs.open.alipay.com/270/105898/ # 3.完成RSA密钥生成:https://docs.open.alipay.com/291/105971 # 4.在开发中心的沙箱应用下设置应用公钥:填入生成的公钥文件中的内容 # 5.Python支付宝开源框架:https:/

微信浏览器中调用支付宝支付

众所周知,在微信浏览器中是无法唤起支付宝的,会提示请在浏览器中打开,如果非要在微信浏览器中调起支付宝的话,只能是跳出微信浏览器,关于这一点,在支付宝官网给出了一个例子.但是,话说回去,后来我仔细想想,其实真的没有必要非要在微信浏览器中调起支付宝支付(当时真是一根筋啊啊啊...) 支付宝手机网站支付的官方文档: https://doc.open.alipay.com/docs/doc.htm?treeId=203&articleId=105288&docType=1 快速接入: https:

php大力力 [047节] 支付宝支付.申请支付资质,等待审核中

https://beecloud.cn/doc/payapply/?index=6 支付宝支付申请支付资质 一.注册支付宝用户 在支付宝官网注册成为用户 二.签约对应支付产品 应用集成支付宝支付,需要签约支付宝支付产品. 荷马史诗,西西弗斯是人间最足智多谋又机巧的人,他是科林斯的建城者和国王.当宙斯掳走河神伊索普斯(Aesopus)的女儿伊琴娜(Aegina),河神曾到科林斯找寻其女,知悉此事的西西弗斯以一条四季常流的河川做为交换条件告知.由于泄露了宙斯的秘密,宙斯便派出死神要将他押下地狱.没有

iOS 支付宝支付繁忙ALI59

在iOS 调用支付宝支付时出现此提示. 主要情况为 tradeNO   amount等参数中  有特殊字符 导致, 在此处打个断点 po 一下相应的参数就好了. 在此也收集下调用支付宝支付出现的问题. 欢迎留言.

支付宝支付php的demo或sdk报错 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错: Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in 后来查了查,是我的服务器上PHP环境支持openssl_sign()但却不支持 OPENSSL_ALGO_SHA256这样的参数,问了一下大佬,才发现这个参数是在php5.4.8以上版本才支持,低版本的是使用的SHA256,于是乎试了一下,搞定! 报错原因是支付宝的dem