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