支付宝
流程图:
公钥和私钥
①:商户上传自己的商户公钥到支付宝服务器
②:使用商户私钥加密请求参数
③:加密以后的参数请求到支付宝
④:支付宝服务器使用商户上传的商户公钥,解密商户请求参数,并处理支付结果
⑤:对商户支付结果使用支付宝私钥加密
⑥:商户使用支付宝公钥验签支付返回的支付结果
支付宝的使用:
import os
from django.conf import settings
from alipay import AliPay
app_private_key_path = os.path.join(settings.BASE_DIR, 'goods/keys/appkey.txt')
alipay_public_key_path = os.path.join(settings.BASE_DIR, 'goods/keys/alikey.txt')
def read_alikey():
with open(app_private_key_path) as f:
app_private_key_string = f.read()
with open(alipay_public_key_path) as f:
alipay_public_key_string = f.read()
return app_private_key_string, alipay_public_key_string
def create_zfb_url(out_trade_no, total_amount, subject):
appkey, alikey = read_alikey()
alipay = AliPay(
appid="2021000116687601",
app_notify_url=None, # 默认回调url
app_private_key_string=appkey,
# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
alipay_public_key_string=alikey,
sign_type="RSA2", # RSA 或者 RSA2
debug=True, # 默认False
)
order_string = alipay.api_alipay_trade_page_pay(
out_trade_no=out_trade_no,
total_amount=total_amount,
subject=subject,
return_url= "http://127.0.0.1:8000/goods/GETZFBinfo/"
)
return "https://openapi.alipaydev.com/gateway.do?"+order_string
使用之前的先导入公钥的私钥 都是可以在支付宝获取的