• 支付宝sdk——python-alipay-sdk



    一、支付宝支付介绍

    线上支付有:

    1. 支付宝支付
    2. 微信支付
    3. 云闪付

    支付流程:
    1.用户把钱打到第三方平台(支付宝,微信)的商家账户中
    2.商家提现提出来(第三方平台收手续费)

    注意:必须是商户(企业),有营业执照才能申请支付宝,微信的支付接入


    二、支付宝支付使用

    第一步:找到支付宝沙箱
    在这里插入图片描述
    第二步:画框处后续需要用到
    在这里插入图片描述
    第三步:创建公钥私钥
    安装支付宝开放平台开发助手:点击进入支付宝文档下载
    在这里插入图片描述
    生成公钥私钥
    在这里插入图片描述
    第四步:将生成的公钥配置到支付宝沙箱中

    在这里插入图片描述
    示例:
    直接使用python-alipay-sdk调用支付宝
    首先安装

    pip install python-alipay-sdk
    
    • 1
    from alipay import AliPay
    
    app_private_key_string = open("./pri").read() #在pri文件下加入私钥
    alipay_public_key_string = open("./pub").read() #在pub文件下加入支付宝公钥
    alipay = AliPay(
        appid="xxxxxxxxxxxx", # 此处填写支付宝公开平台的appid
        app_notify_url=None,  # 默认回调 url
        app_private_key_string=app_private_key_string,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=True,  # 默认 False
    )
    # 电脑网站支付,需要跳转到:https://openapi.alipay.com/gateway.do? + order_string
    res=alipay.api_alipay_trade_page_pay(
        out_trade_no='asdsad623232332', # 订单号,自设
        total_amount=float(999),  # 只有生成支付宝链接时,不能用Decimal
        subject='充气球', # 订单内容,自设
        return_url='http://127.0.0.1:8000', # 回调地址
        notify_url='http://127.0.0.1:8000', 
    )
    
    gataway = 'https://openapi.alipaydev.com/gateway.do?' # 支付宝网关地址
    print(gataway+res) # 此处是生成的支付链接
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    三、支付宝支付二次封装

    创建一个包

    ipay  #包名
        -pem  #存放公钥私钥
            alipay_public_key.pem
            app_private_key.pem
        __init__.py 
        pay.py   #生成一个对象
        settings.py #配置文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    公钥私钥必须按照格式来存放
    pem文件下的app_private_key.pem存放私钥

    -----BEGIN RSA PRIVATE KEY-----
    此处为私钥内容
    -----END RSA PRIVATE KEY-----
    
    • 1
    • 2
    • 3

    pem文件下的alipay_public_key.pem存放支付宝公钥

    -----BEGIN PUBLIC KEY-----
    此处为公钥内容
    -----END PUBLIC KEY-----
    
    • 1
    • 2
    • 3

    init.py

    from .pay import alipay
    from .settings import GATEWAY
    
    • 1
    • 2

    pay.py

    from alipay import AliPay
    
    from . import settings
    
    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
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    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 = 'xxxxxxxx'
    
    # 加密方式
    SIGN = 'RSA2'
    
    # 是否是支付宝测试环境(沙箱环境),如果采用真是支付宝环境,配置False
    DEBUG = True
    
    # 支付网关
    GATEWAY = 'https://openapi.alipaydev.com/gateway.do?' if DEBUG else 'https://openapi.alipay.com/gateway.do?'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 相关阅读:
    js异步编程面试题你能答上来几道
    为什么建议你做自动化邮件营销?
    设计模式的一些笔记(个人见解参杂各个模式的用途,未完待续0907)
    对象创造模式
    Linux内核编译-ubuntu22.03-Linux-6.6
    web网页设计期末课程大作业:美食餐饮文化主题网站设计——中华美德6页面HTML+CSS+JavaScript
    RefConv: 重参数化的重新聚焦卷积(论文翻译)
    巧用Nginx配置解决跨域问题
    前端进击笔记第二十二节 如何进行性能分析的自动化实现
    [航海协会]树
  • 原文地址:https://blog.csdn.net/kdq18486588014/article/details/125877822