python实现支付宝支付功能
作者:互联网
目录
支付宝支付基本使用
第一步:测试用支付宝的沙箱环境:支付宝开放平台 (alipay.com)
第二步:生成公钥私钥:生成密钥 - 支付宝文档中心 (alipay.com)
第三步:配置公钥私钥
第三步:安装模块
pip install python-alipay-sdk
第四步:基本使用
from alipay import AliPay
from alipay.utils import AliPayConfig
app_private_key_string = open("./应用私钥2048.txt").read()
alipay_public_key_string = open("./支付宝公钥.txt").read()
# 应用私钥格式
"""
-----BEGIN RSA PRIVATE KEY-----
base64 encoded content
-----END RSA PRIVATE KEY-----
"""
# 支付宝公钥格式
"""
-----BEGIN PUBLIC KEY-----
base64 encoded content
-----END PUBLIC KEY-----
"""
alipay = AliPay(
appid="2021000121627616",
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=False, # 默认 False
verbose=False, # 输出调试数据
config=AliPayConfig(timeout=15) # 可选,请求超时时间
)
res = alipay.api_alipay_trade_page_pay(
out_trade_no='1000101', # 订单号
total_amount=float(999), # 价格
subject='气球', # 名称
return_url='http://127.0.0.1:8000',
notify_url='http://127.0.0.1:8000',
)
gataway = 'https://openapi.alipaydev.com/gateway.do?'
# 支付链接
pay_url = gataway + res
print(pay_url)
二次封装
二次封装方便项目使用
包目录结构:
包名
├── __init__.py
├── pem -- 存放公钥私钥文件夹
├ ├── alipay_public_key.pem -- 支付宝公钥
├ └── app_private_key.pem -- 应用私钥
├── pay.py -- 生成一个alipay对象
└── settings.py -- 配置文件
__init.py__
from .pay import alipay
from .settings import GATEWAY
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 = '100'
# 加密方式
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 alipay.utils import AliPayConfig
from . import settings
alipay = AliPay(
appid="2021000121627616",
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) # 可选,请求超时时间
)
项目中使用:
# 导入包中的alipay对象和GATEWAY网关接口
res = alipay.api_alipay_trade_page_pay(
out_trade_no='1000101', # 订单号
total_amount=float(999), # 价格
subject='气球', # 名称
return_url='http://127.0.0.1:8000',
notify_url='http://127.0.0.1:8000',
)
pay_url = GATEWAY + res
print(pay_url)
标签:alipay,支付宝,公钥,python,pay,url,key,支付 来源: https://www.cnblogs.com/yume-zbh/p/16495265.html