支付流程简单逻辑分析

支付中的业务逻辑|支付幂等性 幂等性其实是一个数学上的概念,在计算机领域,幂等是指一个方法被多次重复执行的时候所期望的结果要和第一次执行所期望的结果保持一致... 阅读详情

1.支付宝和银联的支付流程

常用的支付方式有:

1、支付宝支付

https://openhome.alipay.com/doc/docIndex.htm?url=https://openhome.alipay.com/doc/viewKbDoc.htm?key=236714&type=cat

支付流程:

(1)先与支付宝签约,获取商户id(partner)和账号id(seller)

(2)下载相应的公私钥文件(加密签名使用),在客户端我们可能只需要私钥

(3)下载支付宝sdk

(4)生成订单信息,可以直接客户端或者自己服务端生存都可以,但是大多是服务端生存的。

(5)调用支付宝客户端,有支付宝客户端跟支付宝打交道

(6)支付完毕之后返回结果给客户端和服务端。

2、微信支付

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=cd674b2fe840f8e60d09126cc5c7e2cd1317ffe6&lang=zh_CN

支付流程:

(1)注册微信开放平台,创建应用获取appid,appSecret,申请支付功能,申请成功之后会返回一些参数详情见图

(2)下载微信支付sdk

(3)客户端请求订单,后台与微信后台交互,返回给客户端支付参数;

(4)调用微信客户端,由微信客户端和微信服务器打交道;

(5)客户端和服务端都会收到支付结果;(前台消息不可靠,我们需要去后台验证,如果后台没有收到支付通知,后台去微信服务器验证然后将结果返回给客户端)

注意事项:

1)如果APP里面已经使用了ShareSDK,就有一些地方要注意。不要再重复导入微信的SDK,因为shareSDK里面的extend已经包括了微信的SDK。

2)微信本身是鼓励客户APP把签名算法放到服务器上面,这样信息就不容易被破解。但是如果客户APP本身没有服务器端,或者认为不需要放到服务器端,也可以直接把签名(加密)的部分直接放在APP端。Sample代码的注释有点乱,多次提到服务器云云,但是其实可以不这么做。

3、银联

支付流程:

(1)注册申请就不是前端的事了,直接介入sdk

(2)从自己的服务端获取流水号

(3)然后调用银联sdk,不用跳转,银联sdk直接是内嵌的

(4)支付完成之后会回调代理方法

4、内购

•请求有效的产品代号集合

•购买指定产品

•验证购买

•恢复购买

http://www.tairan.com/archives/2215/

常用的支付方式有:

1、支付宝支付

https://openhome.alipay.com/doc/docIndex.htm?url=https://openhome.alipay.com/doc/viewKbDoc.htm?key=236714&type=cat

支付流程:

(1)先与支付宝签约,获取商户id(partner)和账号id(seller)

(2)下载相应的公私钥文件(加密签名使用),在客户端我们可能只需要私钥

(3)下载支付宝sdk

(4)生成订单信息,可以直接客户端或者自己服务端生存都可以,但是大多是服务端生存的。

(5)调用支付宝客户端,有支付宝客户端跟支付宝打交道

(6)支付完毕之后返回结果给客户端和服务端。

2、微信支付

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=cd674b2fe840f8e60d09126cc5c7e2cd1317ffe6&lang=zh_CN

支付流程:

(1)注册微信开放平台,创建应用获取appid,appSecret,申请支付功能,申请成功之后会返回一些参数详情见图

(2)下载微信支付sdk

(3)客户端请求订单,后台与微信后台交互,返回给客户端支付参数;

(4)调用微信客户端,由微信客户端和微信服务器打交道;

(5)客户端和服务端都会收到支付结果;(前台消息不可靠,我们需要去后台验证,如果后台没有收到支付通知,后台去微信服务器验证然后将结果返回给客户端)

注意事项:

1)如果APP里面已经使用了ShareSDK,就有一些地方要注意。不要再重复导入微信的SDK,因为shareSDK里面的extend已经包括了微信的SDK。

2)微信本身是鼓励客户APP把签名算法放到服务器上面,这样信息就不容易被破解。但是如果客户APP本身没有服务器端,或者认为不需要放到服务器端,也可以直接把签名(加密)的部分直接放在APP端。Sample代码的注释有点乱,多次提到服务器云云,但是其实可以不这么做。

3、银联

支付流程:

(1)注册申请就不是前端的事了,直接介入sdk

(2)从自己的服务端获取流水号

(3)然后调用银联sdk,不用跳转,银联sdk直接是内嵌的

(4)支付完成之后会回调代理方法


支付功能-需要返回哪些参数

公共返回参数

result_code返回码0为正常

result_msg返回信息,OK为正常

err_detail具体错误信息

id成功发起支付后返回支付表记录

不同的支付方式的返回参数有些不同,可以到官方文档去看。

支付宝返回参数说明

1、支付宝的返回有两种:return的客户端返回,notify的服务器通知返回。

支付完成后立刻返回到外部网站的客户端上,是可见的,返回机制:以GET的方式返回

返回信息包括提交给支付宝的订单信息,可根据这个返回信息做相应的操作显示给客户看。

notify_url:服务器的返回

服务器的通知返回是由支付宝的服务器发起,以POST的方式返回到合作伙伴的网站上。返回信息包括提交给支付宝的订单信息,在返回的文件中,需要输出success做为支付宝通知返回信息成功,若没有这个success的输出,那么支付宝的服务器会24小时内返回同样的返回消息,返回的时间频率会逐渐减弱,(1分钟、3分钟、5分钟、10分钟、15。。。。。。。。。。)

notify_url页面中只能做对数据库的业务操作

建议:return_url和notify_url可以都设置,前者做数据显示,后者做更新数据库

2、 注意的地方,每种返回都是有一个sign和mysign的验证,作用,验证参数是否有效和是否是支付宝发出的消息。还有一个交易状态的判断:trade_status是判断交易状态是否成功,例如:

返回状态:

trade_status = "WAIT_BUYER_PAY"等待买家付款

trade_status = "WAIT_SELLER_SEND_GOODS"买家付款,等待买家发货

trade_status = "WAIT_BUYER_CONFIRM_GOODS"卖家付款,等待买家确认

rade_status = "TRADE_FINISHED"交易完成

基本上会有以上几种重要的交易状体需要判断,还有一些详细:请以支付宝接口文档为主,当然不是每种接口都有这些交易状态,虚拟的即时到帐接口是不存在买卖双方确认的环节的。

service      =   "create_direct_pay_by_user"即时到帐接口的服务名称

service      =   "trade_create_by_buyer"标准实务双接口服务名称

HAS_NO_PRIVILEGE出现这个样的错误,请注意您说开通的接口权限是否是以上两种,或者在您集成的接口中是否有用您与支付宝签约后的ID和key

4.支付的安全处理;

(1)请求基于https

(2)可多次进行数据加密

关于支付方面安全的处理不用我们去管,具体的安全问题是由支付宝、微信等支付三方的自己内部去做的。

支付逻辑漏洞的八大姿势(上篇) 学习支付漏洞,看这篇文章!!!文章来源:SecHub网络安全社区(本资料仅供学习参考,严禁使用者进行未授权渗透测试!严禁任何形式的转载! 阅读详情

相关推荐

支付逻辑漏洞挖掘实战:从业务模型到SRC报告的全流程解析

在Web应用安全领域,业务逻辑漏洞因其隐蔽性和直接业务影响,已成为安全测试的核心关注点。这类漏洞根植于应用程序的业务规则与流程设计中,而非特定的技术栈缺陷,其原理在于正常业务流程中存在的状态校验缺失、条件竞争或权限控制不当。从技术价值看,挖掘逻辑漏洞能直接评估核心业务(如交易、支付)的风险敞口,对保障企业资产和用户数据安全至关重要。典型的应用场景包括电商交易、金融支付、用户权益体系等涉及状态转换和资源交换的模块。本文聚焦于支付环节这一高风险场景,系统拆解了其核心的“四态模型”与六大经典漏洞类型(如金额篡改、

weixin_29323365的博客 288

支付业务逻辑详解!!!!

的主要作用是帮助商户或平台将交易款项按照预设的规则和金额,划付给多个收款方或合作方。它广泛应用于电商平台、支付平台以及多方合作的支付流程中。

qq_56947957的博客 2337

三节课学懂支付核心(上)| 支付学院

支付核心和清算核心职责   首先要明确一个概念:一个完整的支付清算系统结构内,各种特定业务所涵盖的支付服务、清算服务是相互独立的。其独立性体现在具体的产品研发过程以及后期维护等各项工作中: 1、 这种现状导致了业务产品开发复杂化、风险性提高; 2、 支付与清算的相关规则各自为政,彼此独立,加大管理难度; 3、 在开放平台的大背景下,也不能提供给大量外部业务系统所需要的基础支付服务; ...

Ping++支付学院 2908

Web攻防-业务逻辑篇&购买支付&修改数量&篡改价格&订单积分对冲&优惠券复用盗用&新会员签约&四舍五入法

知识点 1、WEB攻防-购买支付-修改数量&篡改价格&产品订单替换对冲 2、WEB攻防-购买支付-优惠券复用盗用&积分对冲溢出&库存溢出 3、WEB攻防-购买支付-SRC支付购买挖掘分享案例

SuperherRo的博客 1292

Google Wallet 支付接入(内购买商品)后端处理逻辑及问题分析

Google Wallet 支付接入(内购买商品)后端处理逻辑及问题分析前期准备首先要创建一个Google play 开发者帐号,创建帐号需要绑定VISTA信用卡,细节这里不在多讲。接下来创建Oauth2.0授权访问,选择web application.创建成功后我们拿到client_id和client_secret,接下来需要对访问者(谷歌帐号)进行授权。这里Google Pay与Google的帐

lihanzx的博客 4952

浅谈IC测试向量(pattern)及其转换

随着集成电路的飞速发展,其规模越来越大,对电路的质量与可靠性要求进一步提高,集成电路的测试方法也变得越来越困难,为了实现芯片的快速测试和筛选,ATE设备为其提供了强有力的支撑。ATE运用芯片设计仿真文件,将其作为芯片输入激励,通过ATE测试平台提供芯片测试环境,将芯片的输出和测试结果进行比较,以此来判定芯片的好坏。 说起IC测试,不得不说一下Pattern这个词,它中文的意思是模式。在图像处理中,这个词意思为图像的纹理特征,而在IC也即芯片测试行业,这个词实际上代表了需要测试芯片的时序特征。简单的说,在测

flomingo1的专栏 1万+

聊聊支付流程的设计与实现逻辑

通常在业务体系中,都会或多或少的涉及到支付相关的功能;对于一些经验欠缺同学来说,最紧张的就是面对这类支付结算的逻辑,因为流程中的任何细节问题,都可能引发对账异常的情况;错误发生之后,再想去修复流程,花费的时间成本又是高昂的,还牵扯错误数据的调平问题,最终很可能引发乱账算不清的结果,然后需要人工介入手动处理;......

【积累】,是一个长期持续的过程。 1531

Postman账号

Postman账号一、为什么要注册一个Postm账号二、如何注册Postman账号三、登录账号四、切换账号五、找回账号密码 一、为什么要注册一个Postm账号 注册Postman账号是免费的。当注册并登录一个Postman账号后,用户可以获得一下权限。 (1)同步和备份历史、集合、环境和预置头。 (2)可以轻松处理来自不同机器的多个Postman实例‘ (3)创建集合链接发送给其他开发人员。 当然,不注册也可以使用Postman。 二、如何注册Postman账号 (1)下载、安装Postman应用程序。 (

精益求精,永无止境,永远在路上! 6772

PayPal笔试全流程复盘:支付业务逻辑、英语阅读与风险分析实战

在跨境支付与金融科技快速发展的背景下,理解支付业务的基础概念与风险控制原理,已成为进入全球头部外企的关键能力。PayPal的业务横跨两百多个国家和地区,其笔试设计紧密围绕真实支付链路、逻辑推理与英文职场应用,重点考察候选人在限时压力下的业务分析素养。从交易流程的异常排查、欺诈检测指标的理解,到英文商业报告的信息提取与写作表达,这些技能不仅是笔试的得分点,更是跨境支付风控、交易监控等岗位日常工作的核心要求。本文基于亲身经历,系统复盘PayPal实习生笔试的题型结构、时间分配与备考策略,帮助求职者建立从支付基础

weixin_34353714的博客 418

手把手教你用Github提交CVE漏洞(附完整截图流程)

本文提供了在GitHub平台提交CVE漏洞的完整实战指南。从前期准备、目标搜寻与漏洞验证,到撰写规范的GitHub Issue进行披露,最后通过官方渠道完成CVE提交,手把手教你如何将安全研究成果转化为获得国际认可的CVE编号。

weixin_28309571的博客 319

S4 Hana SD -信贷管理 - 03

自动信用控制将针对同一信用控制范围的不同的客户风险类别和信贷组执行不同的信用控制政策。对于ECC系统而言,无需单独设置检查规则,可在自动信贷控制进行设置即可,如图1-5-2。在S4 HANA版本中,自动信贷控制和检查规则是分离的。S4系统需要在定义自动信贷控制的时候,给字段“SAP信用管理”打钩,激活检查规则,然后需要单独在检查规则页签设置检查规则。接下来,我们分别介绍ECC和S4 HANA系统中两种不同配置方式.6.2SPRO。

weixin_46525734的博客 2887

逻辑漏洞之支付

支付逻辑安全测试主要涉及支付流程的深度解析、数据篡改攻击向量分析及高级漏洞挖掘技术。测试要点包括:熟悉支付流程(商品选择、订单生成、支付处理、状态更新),分析核心参数篡改风险(价格、数量、折扣等),掌握支付漏洞挖掘方法(数据包分析、多维度测试策略),以及高级攻击手法(优惠券逻辑漏洞、越权支付、金融精度攻击)。安全修复需后端参数校验、支付金额验证、数字签名防护等措施。文章推荐了相关技术复盘资源。

2402_89693936的博客 1368

泛微ecology9二次开发-附件上传接口实战:从表单创建到数据库存储解析

本文详细解析了泛微ecology9二次开发中的附件上传接口实战,从测试环境搭建、数据库表结构解析到接口代码实现,提供了全面的开发指南。重点介绍了文件上传的核心逻辑、常见问题排查及高级应用场景,帮助开发者高效实现附件上传功能并优化系统性能。

weixin_30836759的博客 477

支付逻辑篇&篡改属性值&并发签约&越权盗用&算法溢出&替换对冲

无限试用,越权支付,并发兑换,四舍五入半价购,循环利用优惠券,支付签约逻辑等。、如给用户退款,要使用原路、原订单退回。、加密、解密、数字签名及验证,这个可以有效避免数据修改,重放攻击中的各种问。、校验价格、数量参数,比如产品数量只能为整数,并限制最大购买数量;替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付等。,购买价格,购买数量,订单属性,折扣属性,支付方式,支付状态等。支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠等)、与第三方支付平台检查,实际支付的金额是否与订单金额一致;

2302_80396242的博客 319

【AI产品与商业航图】Flux.1 完全开源 AI 绘图模型:本地部署与 ComfyUI 实战指南

Flux.1是一个开源项目,用户可以自由使用和修改,完全免除使用费用。🖥️本地部署支持:与一些依赖云端计算的工具不同,Flux.1支持本地部署,确保用户可以离线使用并自主控制数据隐私。🔄兼容ComfyUI框架:Flux.1可以无缝集成到ComfyUI中,用户可以享受更加简便和直观的操作界面。🎨卓越的图像生成能力:Flux.1能够生成高质量、细腻的图像,支持多种风格与创作主题的切换。💾低硬件要求。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1736

FLUENT 软件中design modeler网格划分后,导出失败:系统显示“在网格文件导出过程中出现异常。请将数据发送给您的技术支持供应商。”...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1467

支付系统-系统架构

本文主要是从支付架构、支付流程分析、支付核心逻辑、支付基础服务、支付安全五个方面来详细讲述支付系统架构 (1)、架构的定义:架构一定是基于业务功能来展开的,主要是制定技术规范、框架,指导系统落地;好的架构是需要不断演变和进化而来的。 (2)、架构需要关注的基础核心点主要是:安全、稳定、可扩展。 (3)、构建架构时需要关注的点:目标客户是谁、主要场景有哪些、流程是怎样的、模型、职责有哪些、边...

一个有情怀的程序猿博客 3639

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

实战复盘|一次逻辑漏洞挖掘全流程,从发现到提交干货满满

在漏洞挖掘领域,技术型漏洞靠工具,逻辑漏洞靠思维。相比于SQL注入、XSS这类技术型漏洞,逻辑漏洞更隐蔽、危害更致命,且很难被自动化扫描器发现,是SRC平台高分漏洞的“主力军”,也是资深白帽的主要掘金方向。

fly_enum的博客 523

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

移动app部分机型无法唤起h5支付宝支付_案例分析:H5支付交互体验设计

随着互联网技术和手机软硬件的高速发展,手机的使用场景已经融入到日常生活的点滴中。购物用淘宝下单,饿了在美团点外卖,出行滴滴一下……这些关联衣食住行的应用,都离不开一个核心环节:线上支付。手机支付通常可以细分为两种场景:“手机APP应用中集成支付功能”、“手机网页应用中集成支付功能”。本文以支付宝和微信支付举例分析“手机网页应用(以下简称H5)进行支付的交互体验设计”。一、APP支付与H5支付的异同...

weixin_39797381的博客 2678

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

常见支付逻辑

logcat字符串定位(Egame支付成功/Egame支付Cancel/order id)=>搜索字符串,向上分析,回溯分析/函数名替换。logcat字符串定位(Unicom支付cancel/Unicom支付成功)=> 在下面类修改处理,可以用goto或switch方法。logcat字符串定位(购买道具:[] 成功/购买道具:[] 失败)=>在 下面类修改。程序逻辑分析=>最重要的又是流程分析/流程图=>核心(层次)中国移动 46000、46002、46007、46020。电信爱游戏搜索方法名。

Codeoooo 博客 1464

​Web安全必修课:逻辑漏洞原理与实战全解析​​

逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。

xx16755498986的博客 594

云炬Android开发笔记 13购物车,订单,支付功能开发(包含支付宝支付和微信支付)

阅读目录 1.购物车UI编写 1.1 购物车布局 1.2 recycleView中的item的布局 2. 购物车数据结构分析、解析与转化 2.1 解析的数据 2.2 数据的转化 2.3 数据适配器的添加 3. 购物车逻辑梳理与实现 3.1 是否选中的事件的响应 3.2 全选按钮事件的响应 3.3 闪屏bug 3.4 删除按钮的功能实现 3.5 清空购物车 3.6 清空购物车之后的额外内容的显示 3.7 左右加号减号的功能的实现 3.8 结算功能的实现 4.订单和支付逻辑梳理和处理 4....

科大云炬 1361
上一篇: Android 支付宝微信支付快速接入流程
下一篇: 轮播图控件ImagerSlider的BUG你知道吗?
抚一曲代码
博客等级 码龄11年 17粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值