首页 > 其他分享 >学城项目支付宝支付模块

学城项目支付宝支付模块

时间:2023-07-18 21:35:21浏览次数:27  
标签:alipay 支付宝 KEY settings ----- 模块 import 学城

1. 支付宝开放平台

链接地址:https://open.alipay.com/develop/manage

2. 下载支付宝开放平台密钥工具

链接地址:https://opendocs.alipay.com/common/02kipk

3. 安装支付宝的依赖模块

pip install python-alipay-sdk --upgrade

4. 建立app

python ../../manage.py startapp order

 5. 创建出alipay的模块包

/1 在pay.py中写入

from alipay import AliPay
from . import settings
from alipay.utils import AliPayConfig

# 支付对象
alipay = AliPay(
    appid=settings.APP_ID,  # 支付宝页面上复制,沙箱环境---》公司有人会给你
    app_notify_url=None,  # 默认回调 url
    app_private_key_string=settings.APP_PRIVATE_KEY_STRING,
    # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
    alipay_public_key_string=settings.ALIPAY_PUBLIC_KEY_STRING,
    sign_type=settings.SIGN,  # RSA 或者 RSA2
    debug=settings.DEBUG,  # 默认 False
    verbose=False,  # 输出调试数据
    config=AliPayConfig(timeout=15)  # 可选,请求超时时间
)

# 支付网关
gateway = settings.GATEWAY

/2 配置settings.py文件

import os
# 应用私钥
APP_PRIVATE_KEY_STRING = open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'pem', 'app_private_key.pem')).read()
# 支付宝公钥
ALIPAY_PUBLIC_KEY_STRING = open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'pem', 'alipay_public_key.pem')).read()
# 应用ID
APP_ID = '9021000123607737'

# 加密方式
SIGN = 'RSA2'

# 是否是支付宝测试环境(沙箱环境),如果采用真是支付宝环境,配置False
DEBUG = True

# 支付网关
GATEWAY = 'https://openapi-sandbox.dl.alipaydev.com/gateway.do?' if DEBUG else 'https://openapi.alipay.com/gateway.do?'

/3 建立pem文件夹存放公钥和密钥

# 公钥文件:alipay_public_key.pem
-----BEGIN PUBLIC KEY-----
拿应用公钥跟支付宝换来的支付宝公钥
-----END PUBLIC KEY-----
# 私钥文件:app_private_key.pem
-----BEGIN RSA PRIVATE KEY-----
通过支付宝公钥私钥签发软件签发的应用私钥
-----END RSA PRIVATE KEY-----

创建出来个txt文件分别存放

/4 在__init__.py中注册

from .pay import gateway,alipay

6. 写alipay的测试支付接口

/1 视图类

# 测试支付封装包是否可用
from rest_framework.views import APIView
from utils.common_response import APIResponse
from libs.alipay_common import alipay, gateway

class AliPayView(APIView):
    def get(self,request, *args, **kwargs):
        res = alipay.api_alipay_trade_page_pay( # 调用它来生成真正的订单
            out_trade_no="2011032321021021021",
            total_amount=666,
            subject='benz',
            return_url="https://example.com",
            notify_url="https://example.com/notify"
        )
        pay_url = gateway + res # 真正的支付链接
        return APIResponse(pay_url=pay_url)

/2 配置路由

from django.urls import path
from rest_framework.routers import SimpleRouter
from .views import AliPayView
router = SimpleRouter()

urlpatterns = [
    path('test/',AliPayView.as_view())
]
urlpatterns += router.urls

 附上github的开源框架:https://github.com/fzlee/alipay

标签:alipay,支付宝,KEY,settings,-----,模块,import,学城
From: https://www.cnblogs.com/abc683871/p/17564142.html

相关文章

  • 关于调用支付宝密钥出现的报错问题 Not a valid PEM post boundary
    在项目的支付模块中我配置了settings.py文件importos#应用私钥APP_PRIVATE_KEY_STRING=open(os.path.join(os.path.dirname(os.path.abspath(__file__)),'pem','app_private_key.pem')).read()#支付宝公钥ALIPAY_PUBLIC_KEY_STRING=open(os.path.join(os.path.dirn......
  • @Import :Spring Bean模块装配的艺术
    本文分享自华为云社区《Spring高手之路8——SpringBean模块装配的艺术:@Import详解》,作者: 砖业洋__。本文将带你深入探索Spring框架的装配机制,以及它如何使你的代码更具模块化和灵活性。我们首先介绍Spring手动装配的基础知识,然后进一步解析@Import注解在模块装配中的关键角色。......
  • Train-金蝶系统--合同模块-采购端
    系统介绍以及为何应用系统--金蝶云星辰_云星辰_财务软件_税务软件_进销存软件_金蝶精斗云(jdy.com)具体模块操作指导手册,stepbystep 合同基础资料合同起草合同签订--用印申请合同台账合同执行--收款管理--付款管理--发票管理--郃翅合同参数设置采购合同销售合......
  • 【雕爷学编程】Arduino动手做(165)---TCS34725颜色识别模块
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题......
  • python re模块
    目录1.单字符2.字符集3.转义字符4.数量规则5.边界处理示例1示例2示例3示例4示例代码51.单字符.表示除了\n外的任意一个字符\d为数字,\D反之\s表示空白字符,\S反之\w表示字母,数字,下划线,\W反之2.字符集[]里面是单个字符进行匹配,如果需要的话要好几个[]才行......
  • 【雕爷学编程】Arduino动手做(164)---Futaba S3003舵机模块2
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题......
  • ChatGPT帮助工程师写代码:从功能模块完善到成功执行,实现需求
    在软件开发过程中,经常会遇到需要完善功能模块、调试代码和解决问题的情况。为了提高效率,我们可以借助人工智能技术,例如OpenAI的ChatGPT语言模型,来协助我们进行代码编写和调试。本文将介绍一个案例,展示了如何利用ChatGPT的强大能力,让工程师轻松应对代码开发过程中的挑战。功能......
  • 【雕爷学编程】Arduino动手做(163)---大尺寸8x8LED方格屏模块7
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题......
  • SSM整合(功能模块开发)
    packagecom.itheima.domain;publicclassBook{privateIntegerid;privateStringtype;privateStringname;privateStringdescription;@OverridepublicStringtoString(){return"Book{"+&qu......
  • 【雕爷学编程】Arduino动手做(163)---大尺寸8x8LED方格屏模块6
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题......