iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python如何搭建支付宝三方支付
  • 515
分享到

python如何搭建支付宝三方支付

2023-06-22 00:06:12 515人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python如何搭建支付宝三方支付,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么使用三方支付?  再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账

这篇文章将为大家详细讲解有关python如何搭建支付宝三方支付,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

为什么使用三方支付?

  再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账),特别的不方便,为了解决这些问题,就有了三方支付,三方平台去完成签约,给用户节省时间。

支付宝支付的流程

  商户拿到支付宝的公钥、自己的私钥(私钥加密、公钥解密),用私钥请求支付宝,支付宝解密、验签、进行支付处理,支付宝将处理的返回值传给商户,当支付成功后,返还给商户订单号、金额、时间戳等消息,支付失败后同样给商户反馈结果。

配置流程

1、获取APPID

支付宝开放平台:https://open.alipay.com/

登录支付宝开放平台–>点击控制台

python如何搭建支付宝三方支付

点击沙箱(复制APPID)

python如何搭建支付宝三方支付

2、在线生成密钥

点击文档,找到开发助手,点击在线加密。

python如何搭建支付宝三方支付

获取私钥

python如何搭建支付宝三方支付

3、获取公钥

点击应用公钥

python如何搭建支付宝三方支付

生成公钥

python如何搭建支付宝三方支付

现在已经拿到了需要的公钥。

Python项目中集成支付宝

构建支付类

from datetime import datetimefrom Crypto.PublicKey import RSAfrom Crypto.Signature import PKCS1_v1_5from Crypto.Hash import SHA256from urllib.parse import quote_plusfrom base64 import decodebytes, encodebytesimport JSONclass AliPay:    """    支付宝支付接口(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,            "product_code": "FAST_INSTANT_TRADE_PAY",        }        biz_content.update(kwargs)        data = self.build_body("alipay.trade.page.pay", biz_content, self.return_url)        return self.sign_data(data)    def build_body(self, method, biz_content, return_url=None):        data = {            "app_id": self.appid,            "method": method,            "charset": "utf-8",            "sign_type": "RSA2",            "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),            "version": "1.0",            "biz_content": biz_content        }        if return_url is not None:            data["notify_url"] = self.app_notify_url            data["return_url"] = self.return_url        return data    def sign_data(self, data):        data.pop("sign", None)        unsigned_items = self.ordered_data(data)        unsigned_string = "&".join("{0}={1}".fORMat(k, v) for k, v in unsigned_items)        sign = self.sign(unsigned_string.encode("utf-8"))        quoted_string = "&".join("{0}={1}".format(k, quote_plus(v)) for k, v in unsigned_items)        signed_string = quoted_string + "&sign=" + quote_plus(sign)        return signed_string    def ordered_data(self, data):        complex_keys = []        for key, value in data.items():            if isinstance(value, dict):                complex_keys.append(key)        for key in complex_keys:            data[key] = json.dumps(data[key], separators=(',', ':'))        return sorted([(k, v) for k, v in data.items()])    def sign(self, unsigned_string):        key = self.app_private_key        signer = PKCS1_v1_5.new(key)        signature = signer.sign(SHA256.new(unsigned_string))        sign = encodebytes(signature).decode("utf8").replace("\n", "")        return sign    def _verify(self, raw_content, signature):        key = self.alipay_public_key        signer = PKCS1_v1_5.new(key)        digest = SHA256.new()        digest.update(raw_content.encode("utf8"))        if signer.verify(digest, decodebytes(signature.encode("utf8"))):            return True        return False    def verify(self, data, signature):        if "sign_type" in data:            data.pop("sign_type")        unsigned_items = self.ordered_data(data)        message = "&".join(u"{}={}".format(k, v) for k, v in unsigned_items)        return self._verify(message, signature)

实例化类

def init_alipay():    # 初始化Alipay    alipay = AliPay(        appid="appid",        app_notify_url="回调地址",        return_url="回调地址",        app_private_key_path="私钥相对路径",        alipay_public_key_path="公钥相对路径",        debug=True  # 支付环境    )    return alipay

API

async def get(self):      alipay = init_alipay()    # 传一个标题  订单号  订单价格    params = alipay.direct_pay("三方广告平台", order_no, money)    url = f"https://openapi.alipaydev.com/gateway.do?{params}"    return self.write(ret_json(url))# 构建一个回调地址,用于支付成功后回调,在回调地址中可以获取订单号(out_trade_no)、金额(total_amount)、时间戳(timestamp),然后进行处理业务逻辑。

关于“python如何搭建支付宝三方支付”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: python如何搭建支付宝三方支付

本文链接: https://www.lsjlt.com/news/301698.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何搭建支付宝三方支付
    这篇文章将为大家详细讲解有关python如何搭建支付宝三方支付,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么使用三方支付?  再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账...
    99+
    2023-06-22
  • 三分钟python搭建支付宝三方支付
    目录为什么使用三方支付?支付宝支付的流程配置流程1、获取APPID2、在线生成密钥3、获取公钥python项目中集成支付宝总结为什么使用三方支付?   再没有三方支付平台之前,用户发...
    99+
    2024-04-02
  • 如何用php实现支付宝支付
    这篇文章主要讲解了“如何用php实现支付宝支付”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用php实现支付宝支付”吧!用php实现支付宝支付的方法:1、扫码登录支付宝开放平台注册;2、...
    99+
    2023-06-21
  • 微信支付、支付宝支付等常用第三方支付通道接口手续费对比
    目录一、支付市场的份额二、支付手续费与限额三、常用第三方支付通道接口手续费对比支付宝支付接口费率:微信支付接口费率:QQ钱包支付接口费率:银联支付接口费率:京东支付接口费率:通联代付...
    99+
    2023-01-28
    微信支付手续费 支付宝手续费 银联支付手续费 第三方支付手续费
  • Vue如何实现支付宝支付功能
    这篇文章主要介绍了Vue如何实现支付宝支付功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家上个效果图: <div&...
    99+
    2024-04-02
  • 如何在PHP中实现支付宝支付
    随着电子商务的不断发展,各种在线支付方式也在不断涌现。支付宝作为国内普及度最高的支付方式之一,已经成为很多电商企业不可或缺的一部分。本文将介绍如何在PHP中实现支付宝支付的功能。一、注册支付宝开发平台账号在开始之前,我们需要注册一个支付宝开...
    99+
    2023-05-20
    PHP 实现 支付宝支付
  • uniapp如何实现支付宝支付的功能
    随着移动互联网的飞速发展,人们越来越依赖于手机支付。而支付宝是其中使用最广泛的支付方式之一。在移动应用中,如果要进行支付宝支付的功能开发,那么使用uniapp框架就是一个非常好的选择。本文将介绍uniapp如何实现支付宝支付的功能。一、准备...
    99+
    2023-05-14
  • ThinkPHP如何进行支付宝支付的跳转
    本篇内容介绍了“ThinkPHP如何进行支付宝支付的跳转”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前期准备获取支付宝开发者账号在使用...
    99+
    2023-07-06
  • 如何进行vue项目中的支付功能实现(微信支付和支付宝支付)
    如何进行vue项目中的支付功能实现(微信支付和支付宝支付),针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。项目中常见的支付方式    支付宝支付...
    99+
    2023-06-22
  • React Native集成支付宝支付的实现方法
    在RN应用开发过程中,集成支付宝和微信支付除了直接使用第三方的插件之,比如:react-native-yunpeng-alipay,我们还可以借助RN提供的NativeModules...
    99+
    2024-04-02
  • h5移动端如何调用支付宝、微信支付
    这篇文章给大家分享的是有关h5移动端如何调用支付宝、微信支付的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码:var aliChannel = null;  &...
    99+
    2023-06-09
  • 【连连支付】PHP第三方连连支付对接
    前言: 前不久刚搞定了易宝支付,运营说,不用易宝支付了,改用连连支付。🆗🆗🆗 连连支付搞起~ 对接过程: 一 在商户后台,下载连连提供的密钥生成工具。 获取公私密钥后,在商户后台配置公钥。 ...
    99+
    2023-10-04
    php 连连支付 第三方支付
  • Golang实现支付宝沙箱支付的方法步骤
    首先我使用的是 gin 作为我的后端框架,我们先设定好几个接口。 func main() { r := gin.Default() r.GET("/pay", too...
    99+
    2023-05-16
    Golang 支付宝沙箱支付 Golang 支付宝支付
  • Vue中H5页面如何唤起支付宝支付功能
    这篇文章给大家分享的是有关Vue中H5页面如何唤起支付宝支付功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目前项目中比较常用的第三方支付无非就是支付宝支付和微信支付。下面介绍...
    99+
    2024-04-02
  • 宝付揭秘移动支付如何办公?
    古人闻鸡起舞,现代人闻"机"起床,嗯,赖床。手机24小时不离身,处处可见。洗面奶没了怎么办?网购一下,一天到家。中午不想做饭怎么办?叫外卖,是外卖养活了我。听说有个不错的网红店,不知道怎么去?导航啊,地图是什么鬼。啊,我...
    99+
    2023-06-05
  • PHP中如何进行支付宝和微信支付的开发?
    PHP是一种流行的服务器端编程语言,它在互联网应用中得到了广泛的应用。在电商等交易场景中,支付宝和微信支付是目前最为流行的支付方式之一。本文将介绍如何使用PHP进行支付宝和微信支付的开发。一、支付宝支付的开发注册开发者账号在支付宝官网注册开...
    99+
    2023-05-14
    PHP 微信支付 支付宝支付
  • 亚马逊服务器选择支付宝作为支付方式
    1. 亚马逊云服务(AWS) 亚马逊云服务(AWS)是亚马逊公司提供的一系列云计算服务,包括计算、存储、数据库、网络等。AWS提供了多种服务器实例供用户选择,其中一些实例支持支付宝作为支付方式。 2. 亚马逊轻量级应用服务器(Lights...
    99+
    2023-10-27
    亚马逊 支付宝 支付方式
  • 使用Spring MVC如何调用支付宝接口完成在线支付
    本篇文章为大家展示了使用Spring MVC如何调用支付宝接口完成在线支付,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步:完善沙箱信息 进入支付宝的开发者中心 就可以看到有个沙箱环境...
    99+
    2023-05-31
    springmvc
  • 如何修改VB.NET支付宝接口
    小编给大家分享一下如何修改VB.NET支付宝接口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!曾经为没有VB.NET支付宝接口程序郁闷过很长一段时间,终于忍不住修...
    99+
    2023-06-17
  • 区块链支付系统开发解决方案,usdt支付平台搭建
    区块链支付系统开发解决方案,usdt支付平台搭建区块链支付是一种结合密码技术与互联网技术而来的新一代支付方式。区块链技术是分布式账本技术,是以去中心化的方式集体维护一个可靠数据库的技术方案。区块链技术能解决传统支付中的难题,区块链支付系统实...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作