Django - 实现支付宝支付接口(沙箱环境)

目录

注意事项

一、支付宝沙箱

1-1 官网入口

 1-2 官方 API 调用封装

二、基于Django的支付Demo - 非官方,需pycryptodome模块​

2-0 import Crypto模块报错解决方式

2-1 页面A 获取支付数额,发送请求到后台​

2-2 页面A 执行视图函数

2-3 私钥和公钥配置

2-4 本地回调页面 - 处理支付宝回调信息 API官方文档

 三、实验流程


注意事项

  • 沙箱支付测试,移动端只能使用安卓测试
  • 只有将项目部署在公网IP上,才能实现支付宝支付后的回调页面
  • 注意源码需要使用Crypto模块,默认文件夹小写存在查询不到错误
  • 若在支付宝回调页面时,本地服务器宕机,支付宝会在24小时内一段时间发送一次请求,若超过24小时则无效
  • 支付宝支付成功,支付宝返回get回调和post回调,可以基于她来修改订单状态

一、支付宝沙箱

真实操作 - 官方文档

1-1 官网入口

 

 1-2 官方 API 调用封装

from datetime import datetime
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA256
from urllib.parse import quote_plus
from base64 import decodebytes, encodebytes
import json

class AliPay(object):
    """
    支付宝支付接口(PC端支付接口)
    """
    def __init__(self, appid, app_notify_url, app_private_key_path,
                 alipay_public_key_path, return_url, debug=False):
        self.appid = appid
        self.app_notify_url = app_notify_url
        self.app_private_key_path = app_private_key_path
        self.app_private_key = None
        self.return_url = return_url
        with open(self.app_private_key_path) as fp:
            self.app_private_key = RSA.importKey(fp.read())
        self.alipay_public_key_path = alipay_public_key_path
        with open(self.alipay_public_key_path) as fp:
            self.alipay_public_key = RSA.importKey(fp.read())

        if debug is True:
            self.__gateway = "https://openapi.alipaydev.com/gateway.do"
        else:
            self.__gateway = "https://openapi.alipay.com/gateway.do"

    def direct_pay(self, subject, out_trade_no, total_amount, return_url=None, **kwargs):
        biz_content = {
            "subject": subject,
            "out_trade_no": out_trade_no,
            "total_amount": total_amount,
            
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值