支付宝支付介绍

# 项目中需要有在线支付功能
	-支付宝支付
    -微信支付:备案过域名
    -云闪付
    
    
# 咱们项目以支付宝支付为例
	-支付流程
    -API,sdk
    	-sdk:第三方sdk,基于API封装的
        -官方sdk:https://opendocs.alipay.com/open/02no41
# 支付宝支付介绍
	-申请条件很严苛
    -沙箱环境:Sandbox:程序的虚拟执行环境,不需要申请各种认证,直接写程序,后期只需要换成只是的秘钥即可

1.用支付宝扫码登录:https://openhome.alipay.com/develop/sandbox/app
2.下载https://opendocs.alipay.com/open/02np9g:生成公钥秘钥
自定义秘钥中配置公钥--生成支付宝支付公钥
二、支付宝支付基本使用

# 使用沙箱环境
# 第三方的sdk:https://github.com/fzlee/alipay
	-基于支付宝的API接口封装的,开源软件,
    -pip3 install python-alipay-sdk
# 官方sdk

# 生成公钥私钥:支付宝提供咱们一个生成的工具
	-https://opendocs.alipay.com/open/02np9g
    -生成公钥私钥,在本地(私钥好好保管)
    -非对称加密:
    	-公钥,私钥
    	-加密使用公钥,解密使用私钥
    -对称加密:加密和解密使用同一个秘钥 :AES,DES
    	-我能保证秘钥不丢失
        -解密也要同样的秘钥,解密的人万一把秘钥丢失了
        
        
# 把公钥填在支付宝网站上(沙箱环境,正式环境)
	-把咱么的公钥填进网站,会生成一个支付宝公钥,以后项目中咱们使用支付宝公钥来做


支付宝的二次封装

1.基本使用

from alipay import AliPay
from alipay.utils import AliPayConfig

# 初始化得到对象,传入一堆参数
alipay = AliPay(
    appid="2016092000554611",  # app的id号
    app_notify_url=None,  # 默认回调 url
    app_private_key_string=open('./app_private_key.pem').read(),
    # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
    alipay_public_key_string=open('./alipay_public_key.pem').read(),
    sign_type="RSA2",  # RSA 或者 RSA2
    debug=False,  # 默认 False
    verbose=False,  # 输出调试数据
    config=AliPayConfig(timeout=15)  # 可选,请求超时时间
)

# 生成支付链接
order_string = alipay.api_alipay_trade_page_pay(
    out_trade_no="asdfasdfasdfasdfasdfasdf",
    total_amount=99999,
    subject='精品内衣',
    return_url="https://example.com",  # get回调地址
    notify_url="https://example.com/notify"  # post回调地址
)
# print('https://openapi.alipay.com/gateway.do?'+order_string)
print('https://openapi.alipaydev.com/gateway.do?'+order_string)
2.二次封装
alipay_common  # 包名
    pem        # 放公钥私钥
    	alipay_public_key.pem
    	app_private_key.pem
    __init__.py 
    pay.py    # 核心文件
    settings.py #配置文件
2.1 settings.py #配置文件:
    import os
    APPID = '2021000121697117'
    # 应用私钥
    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()
    # 加密方式
    SIGN = 'RSA2'

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

    # 支付网关
    GATEWAY = 'https://openapi.alipaydev.com/gateway.do?' if DEBUG else 'https://openapi.alipay.com/gateway.do?'
 2.2 alipay_public_key.pem---支付宝公钥
     app_private_key.pem---私钥
 2.3 pay.py    # 核心文件
    from alipay.utils import AliPayConfig
    from . import settings
    # 初始化得到对象,传入一堆参数
    alipay = AliPay(
        appid=settings.APPID,  # 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)  # 可选,请求超时时间
    )
 2.4 __init__.py ---使用路径直接导到包
    from .pay import alipay
    from .settings import GATEWAY

沙箱环境支付软件下载

扫沙箱环境二维码下载
 posted on 2022-11-21 22:00  拾荒菇凉  阅读(225)  评论(0编辑  收藏  举报