• 支付宝支付


    入门

    1、支付宝API:六大接口

    https://docs.open.alipay.com/270/105900/

    2、支付宝工作流程(见下图):
    https://docs.open.alipay.com/270/105898/

    3、支付宝8次异步通知机制(支付宝对我们服务器发送POST请求,索要 success 7个字符)
    https://docs.open.alipay.com/270/105902/

    # 1、在沙箱环境下实名认证:https://openhome.alipay.com/platform/appDaily.htm?tab=info
    
    # 2、电脑网站支付API:https://docs.open.alipay.com/270/105900/
    
    # 3、完成RSA密钥生成:https://docs.open.alipay.com/291/105971
    
    # 4、在开发中心的沙箱应用下设置应用公钥:填入生成的公钥文件中的内容
    
    # 5、Python支付宝开源框架:https://github.com/fzlee/alipay
    # >: pip install python-alipay-sdk --upgrade
    
    # 7、公钥私钥设置
    """
    # alipay_public_key.pem
    -----BEGIN PUBLIC KEY-----
    支付宝公钥
    -----END PUBLIC KEY-----
    
    # app_private_key.pem
    -----BEGIN RSA PRIVATE KEY-----
    用户私钥
    -----END RSA PRIVATE KEY-----
    """
    
    # 8、支付宝链接
    """
    开发:https://openapi.alipay.com/gateway.do
    沙箱:https://openapi.alipaydev.com/gateway.do
    """

    支付流程

    aliapy二次封装包

    GitHub开源框架

    https://github.com/fzlee/alipay

    依赖

    >: pip install python-alipay-sdk --upgrade
    # 如果抛ssl相关错误,代表缺失该包
    >: pip install pyopenssl

    结构

    libs
        ├── iPay                              # aliapy二次封装包
        │   ├── __init__.py                 # 包文件
        │   ├── pem                            # 公钥私钥文件夹
        │   │   ├── alipay_public_key.pem    # 支付宝公钥文件
        │   │   ├── app_private_key.pem        # 应用私钥文件
        │   ├── pay.py                        # 支付文件
        └── └── settings.py                  # 应用配置  
    alipay_public_key.pem
    -----BEGIN PUBLIC KEY-----
    拿应用公钥跟支付宝换来的支付宝公钥
    -----END PUBLIC KEY-----
    app_private_key.pem
    -----BEGIN RSA PRIVATE KEY-----
    通过支付宝公钥私钥签发软件签发的应用私钥
    -----END RSA PRIVATE KEY-----
    setting.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 = '2016093000631831'
    
    # 加密方式
    SIGN = 'RSA2'
    
    # 是否是支付宝测试环境(沙箱环境),如果采用真是支付宝环境,配置False
    DEBUG = True
    
    # 支付网关
    GATEWAY = 'https://openapi.alipaydev.com/gateway.do' if DEBUG else 'https://openapi.alipay.com/gateway.do'
    pay.py
    from alipay import AliPay
    from . import settings
    
    # 支付对象
    alipay = AliPay(
        appid=settings.APP_ID,
        app_notify_url=None,
        app_private_key_string=settings.APP_PRIVATE_KEY_STRING,
        alipay_public_key_string=settings.ALIPAY_PUBLIC_KEY_STRING,
        sign_type=settings.SIGN,
        debug=settings.DEBUG
    )
    
    # 支付网关
    gateway = settings.GATEWAY
    __init__.py
    # 包对外提供的变量
    from .pay import gateway, alipay

    补充:在自己项目的配置文件中配置支付宝回调接口:settings.py | dev.py

    # 上线后必须换成公网地址
    # 后台http根路径
    BASE_URL = 'http://127.0.0.1:8000'
    
    # 前台http根路径
    LUFFY_URL = 'http://127.0.0.1:8080'
    
    # 订单支付成功的后台异步回调接口
    NOTIFY_URL = BASE_URL + '/order/success/'
    
    # 订单支付成功的前台同步回调接口
    RETURN_URL = LUFFY_URL + '/pay/success'

     小结:

    """
    1、简述以下支付宝的支付流程
    商家商品页 -> 支付宝价格页 -> 支付宝登录页 -> 支付宝确认页 -> 商家展示支付宝支付结果页
    
    2、简述支付宝的同步异步回调机制
    同步:支付完成立即回调,采用get请求,访问支付链接中配置的return_url(前台页面路由)
    异步:支付完成立即回调(之后还有不同时间间隔的7次回调),采用post请求,访问支付链接的notify_url(后台路由),,我们服务器在支付宝回调时,需要success 7个字符
    """
  • 相关阅读:
    Django框架之数据库ORM框架
    Django模块之jinja2模版
    Django框架之中间件MiddleWare
    Django框架之类视图
    Django框架之session
    Django框架之cookies
    Django框架之给客户端返回数据
    Django框架之获取客户端发送的数据
    题解 UVA11475 【Extend to Palindrome】
    题解 P3964 【[TJOI2013]松鼠聚会】
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12432565.html
Copyright © 2020-2023  润新知