python支付系统开发,python支付整合开发包
轻量级支付方式整合集成,实现支付与业务完全剥离,快速简单完成支付模块的开发
特性
屏蔽支付方式之间接入API和数据结构的差异,统一API和数据结构
支持支付类型横向扩展
统一异常处理
支持支付方式及功能
支付方式
支付宝(pay_type=ali_pay)
微信支付(pay_type=wx_pay)
通用功能
平台特有功能
使用说明
安装
# installation
pip install all-pay --upgrade复制代码
核心说明
配置(dict)
ALIPAY_CONFIG = {
'pay_type': 'ali_pay', # 必填 区分支付类型
'app_id': 'xxx', #必填 应用id
'private_key_path': 'xxx', #必填 私钥
'public_key_path': 'xxx',#必填 公钥
'notify_url': 'xxx',# 异步回调地址
'sign_type': 'RSA2', # 签名算法 RSA 或者 RSA2
'debug': False, # 是否是沙箱模式
}
WECHAT_CONFIG = {
'pay_type': 'wx_pay', # 必填 区分支付类型
'app_id': 'xxx', # 必填,应用id
'mch_key': 'xxx', # 必填,商户平台密钥
'mch_id': 'xxx', # 必填,微信支付分配的商户号
'app_secret': 'xxx', # 应用密钥
'notify_url': 'xxx'# 异步回调地址
'api_cert_path': 'xxx', # API证书
'api_key_path': 'xxx' # API证书 key
}复制代码
其中 pay_type为本项目所需,用来区分支付类型,其余为对应支付方式所需配置参数,具体参考对应支付方式对应的官方文档。
支付网关,支付方式分配和转发入口
统一封装支付订单信息,主要用于支付下单 生成统一订单例子
order = PayOrder.Builder().subject('商品标题') .out_trade_no('商品订单号').total_fee('商品费用').build()复制代码
通过Builder模式+链式调用灵活组合通用参数和特殊参数 更多参数说明参见源码
是统一封装支付返回业务信息,主要用于支付查询
生成统一回单例子
response = PayResponse.Builder().trade_no('平台订单号').out_trade_no('商家订单号').build()复制代码
通过Builder模式+链式调用灵活组合通用参数和特殊参数 更多参数说明参见源码
demo
from all_pay import PayOrder
from all_pay import Pay
ALIPAY_CONFIG = {
'pay_type': 'ali_pay', # 必填 区分支付类型
'app_id': 'xxx', #必填 应用id
'private_key_path': 'xxx', #必填 私钥
'public_key_path': 'xxx',#必填 公钥
'notify_url': 'xxx',# 异步回调地址
'sign_type': 'RSA2', # 签名算法 RSA 或者 RSA2
'debug': False, # 是否是沙箱模式
}
# 额外参数,某些支付方式有些选填的参数在PayOrder并没有封装,可以自行传递
extra_params= {
'xxx':'xxx'
'xxx':'xxx'
'xxx':'xxx'
}
order = PayOrder.Builder().subject('商品标题') .out_trade_no('商品订单号').total_fee('商品费用').build()
pay = Pay(ALIPAY_CONFIG) # 传入对应支付方式配置
order_res= pay.trade_page_pay(order,extra_params)# 传入对应订单和额外参数(要是需要)复制代码
功能说明
pay = Pay(ALIPAY_CONFIG) # 传入对应支付方式配置
order_res= pay.trade_page_pay(order)# 传入对应订单复制代码
pay = Pay(ALIPAY_CONFIG) # 传入对应支付方式配置
order_res= pay.trade_wap_pay(order)# 传入对应订单复制代码
pay = Pay(ALIPAY_CONFIG) # 传入对应支付方式配置
order_res= pay.trade_app_pay(order)# 传入对应订单复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应支付方式返回的原始数据,校验成功会返回解析成json数据
data = pay.parse_and_verify_result(req_xml)复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应订单
data = pay.trade_js_pay(order)复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应订单
data = pay.enterprise_pay(order)复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应回单信息
data = pay.trade_query(response)复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应回单信息
data = pay.trade_cancel(response)复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应回单信息
data = pay.trade_refund(response)复制代码
# 传入对应支付方式配置
pay = Pay(WECHAT_CONFIG)
# 传入对应回单信息
data = pay.trade_refund_query(response)复制代码
贡献
本项目目前支持的支付方式和API还不多,欢迎你给本项目提pull request,扩展新的的支付接口,同时如果你有好的意见或建议,也欢迎给本项目提issue
声明:
本项目主要目标的是支付整合,统一支付API和数据结构,在具体支付模块的接入实现参考了一些开源项目
python支付系统开发,python支付整合开发包相关推荐
- 聚合支付系统开发究竟难不难?
随着聚合支付的盛行,现在很多做聚合支付的服务商都推出了属于自己的聚合支付系统,虽然平台很多,但是市场上的聚合支付系统的功能还是参差不齐,多种收款方式的聚合是支付系统的最基本的功能,而由聚合支付衍生出更 ...
- Python 短信通知系统开发实战
课程介绍 作为学生,你想不想要这样一种服务:教务系统更新成绩后,你的手机上会自动收到成绩通知? 作为白领,你想不想要这样一种服务:公司发布了晋升.放假等新闻时,你的手机上会第一时间收到新闻? 作为-- ...
- Python云端系统开发入门——云端系统之框架基础
Django简介 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django 是一个开放源代码的 Web 应用框架 ...
- 视频教程-python项目之博客系统开发-Python
python项目之博客系统开发 TriAquae开源运维软件创始人,混迹IT运维领域多年,曾就职于松下.国政通.飞信.中金.NOKIA等公司,维护过少至几十台,多至数万台设备的IT系统,致力于提高企业 ...
- 聚合项目访问后台接口失败_聚合支付系统和免签支付系统对未来支付市场有哪些影响...
时势所趋,在如今支付通道不稳定的情况下,四方聚合支付的出现弥补了通道不稳的情况,四方聚合支付可以接入多个三方,实现在三方不稳的情况直接后台切换三方,实现一秒切换,还可以接入个人免签支付系统,实现商户实 ...
- 2018最新支付系统/第三方支付系统/第四方支付系统/聚合支
2018最新支付系统/第三方支付系统/第四方支付系统/聚合支这里写自定义目录标题 2018最新第三方API第四方支付平台程序源码完整开源全套完美运营版聚合支付平台源码,此平台源码是客户独家运营的版本, ...
- 仅需8道题轻松掌握Python Web应用开发 | Python技能树征题
仅需9道题轻松掌握Python Web应用开发 | Python技能树征题 0. 前言 1. 第 1 题:客户端访问 Web 服务器 2. 第 2 题:构建 TCP 服务器 3. 第 3 题:构建 U ...
- python嵌入式系统开发_Python在开发实时嵌入式系统中的作用
原标题:Python在开发实时嵌入式系统中的作用 在过去的几年里,Python已经成为一种热门的程序语言.以著名的Monty Python喜剧小组命名,该语言是面向对象和解释.该属性导致Python在 ...
- 支付+电商双系统项目笔记(七)支付系统:支付宝支付开发
目录 一.支付系统介绍 二.代码解析 1.支付宝支付参数配置 2.controller类 3.service类 4.dao类 三.支付演示 一.支付系统介绍 该支付系统实现了支付宝的网站支付功能(微信 ...
最新文章
- 中法计算机专业,计算机专业中法对照词汇
- moment获取几小时前_momentjs – 使用时刻在两个日期时间之间获得hh:mm的时差
- kmeans中的k的含义_聚类的Python实现(二):确定分群数K
- android暂停活动,如何将Android暂停活动带到前面
- Inline Method(内联函数)
- apacheBench对网站进行压力测试
- pythonopencv人脸相似度_图像相似度算法的个人见解(pythonopencv)-Go语言中文社区...
- SPSS单因素方差分析
- zip、rar等密码破解软件
- burp 安装 license key not recognized
- 网页播放全景视频和全景图片
- 南充计算机职业学校有哪些专业,南充旅游计算机职业中专学校2020年招生简介...
- HTML----基础案例(与笔记对应)
- 【建站】手把手教你域名注册(腾讯云)
- 相比微信、支付宝支付,apple pay支付优缺点是什么呢?
- Git出现 FETCH_HEAD fatal: refusing to merge unrelated histories解决方法
- 世界500强企业名称中英对照(续)
- 导出Excel之Epplus使用教程2(样式设置)
- Ubuntu(Linux)新系统分区
- CACC 协同式自适应巡航模型 搭建四辆车在carsim和simulink进行协同式自适应巡航 其中间距策略考虑领航车速的影响,各个车辆采用分层式控制,分层式控制器主要分为下层控制
热门文章
- ntu 课程笔记 :MAS714(7) 最短路径和优先队列
- NTU课程笔记:MAS 714 algorithm and theory of computing(1):introduction
- 文巾解题 264. 丑数 II (剑指 Offer 49. 丑数)
- python递归深度报错--RuntimeError: maximum recursion depth exceeded
- JDK和SSH无密码配置
- python优秀程序员条件_Python 条件语句
- 深度学习100例 -卷积神经网络(ResNet-50)鸟类识别 | 第8天
- 【python进阶】_装饰器
- MATLAB中GUI设计的基本操作
- 【算法数据结构Java实现】折半查找