支付宝支付之扫码支付(电脑网站支付)、H5支付(手机网站支付)相关业务流程分析总结

news/2024/5/15 5:42:47/文章来源:https://blog.csdn.net/rentian1/article/details/102512339

前言

在上一篇文章《微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结》中,分析和总结了微信支付相关支付类型的业务流程,这里作为与微信支付平起平坐不相伯仲的支付宝支付,当然也是每个公司少不了的第三方支付接入选择。

因此,本篇文章主要分析和总结支付宝支付中的扫码支付、H5支付相关业务流程。

 

概述

1. 电脑网站支付

电脑网站支付,也称扫码支付,是专门针对电脑而开发的一种支付方式,既在网页展示一个动态生成的支付二维码,用户通过手机支付宝扫码以后可实现支付功能的一种支付方式。

2. 手机网站支付

手机网站支付,是专门针对手机而开发的一种支付方式,跟扫码支付不一样的是,手机网站支付可以唤醒手机中安装的支付宝APP,直接通过支付宝APP实现支付功能;如果手机中没有安装支付宝APP,则会通过手机网页支付流程实现支付功能。

 

开发前准备

1. 电脑网站支付

电脑网站支付的流程目前分新老版本两种,新版本开发文档地址:

https://docs.open.alipay.com/270/105899/

老版本开发文档地址:

https://docs.open.alipay.com/62/103566 

 

因本人所在公司目前所用的电脑网站支付依旧用的是老版本的支付功能,因此文中会对老版本的业务流程做一定分析。

 

老版本:

  1. 登录支付宝开放平台后台,查询到合作伙伴身份(PID),然后根据开发文档正确配置RSA密钥。密钥配置操作手册:https://docs.open.alipay.com/common/104740 

 

   老版本的支付接口叫及时到账接口,最原来的时候支付宝官方也是封装了一套开发demo的,后来由于新版本的到来,老版本的demo就被屏蔽了,我找了好半天都没能在官网文档中找到,因此只好到其他网站去找,于是找到了这篇文章《支付宝即时到账接口》,在这篇文章中找到了下载老版本demo的链接地址:

<a href="http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo/alipaydirect.zip?spm=a219a.7629140.0.0.ZXTiAo&file=alipaydirect.zip" >下载DEMO</a>

 如果链接失效,则请访问我的百度网盘:https://pan.baidu.com/s/1scJRwAIhIfkXbhf8cegZkg;下载完毕后的demo结构如下:

 

 

 

上图中分别是MD5跟RSA两中签名版本的SDK,打开文件夹以后又分贝包含了C#、JAVA、PHP三个版本的内容,这里选用C#版本,在往里打开就是具体的项目结构了:

 

其中主要demo源码就封装在app_code中:

 有了开发demo,再结合官方文档的指导,将文件夹app_code中的所有内容复制粘贴到实际开发项目中,就可进行实际开发应用了。官方操作文档:https://docs.open.alipay.com/62/104746/

 

新版本:

  1. 登录支付宝开放平台,在开发者中心登记应用,获得应用唯一标识(APPID),最后提交审核,待审核通过后该应用可正式使用;
  2. 配置密钥。操作手册地址:https://docs.open.alipay.com/200/105310 ;
  3. 搭建和配置开发环境。电脑网站支付SDK与Demo:https://docs.open.alipay.com/270/106291/ 

 新版本的demo下载到本地以后的项目目录如下:

 

新版本的demo已经将大部分内容封装成了DLL,只保留了一个需要开发者自己去配置的类文件config.cs;因此开发前需要将BIn目录下的AopSdk.dll应用到项目中,并且将config.cs复制到项目中。

其余事情则按官方开发文档操作即可。

 

 

2. 手机网站支付

   1.登录支付宝开放平台,根据实际需要创建应用,这里选择手机网站支付类型;配置相关参数后提交审核,审核通过后即可使用;开发平台操作手车URL:

    https://docs.open.alipay.com/203/105910/

   2. 搭建和配置开发环境。首先下载服务独胆SDK,并将相关SDK内容应用到开发项目中;SDK下载地址:

    https://docs.open.alipay.com/203/105910/


手机网站支付的SDK跟电脑网站支付的最新版SDK是一样的,这里就不做重复介绍。

 

对于电脑网站支付、手机网站支付中都提到的密钥配置,支付宝官方文档提供了相应的配置工具,但是仅针对与RSA签名方式,RSA密钥下载及操作文档:https://docs.open.alipay.com/291/105971,下载了密钥生成工具后,解压压缩包:

 

双击点击RSA签名验签工具.bat:

 

最后将商户公钥上传至支付宝开放平台,保留商户私钥给到自己,下面就可以进行开发了。

 

业务流程

因公司项目接入的是支付宝电脑网站支付的老版本,所以这里会对新版本的业务流程做一个梳理。

1. 电脑网站支付

老版本业务流程:

  1. 用户在电脑下单,选择支付宝支付;
  2. 商户后台生成订单,并准备和组合好调起支付宝支付所需的参数,最终形成跳转到支付宝网页的URL链接。
  3. 商户后台跳转至上一步形成的URL,既跳转至支付宝网页;
  4. 支付宝后台接收请求并处理;
  5. 支付宝网页展示支付二维码;
  6. 用户打开手机支付宝进行扫码支付;
  7. 支付宝后台检测到支付成功,跳转至商户回调页面,并向商户异步通知地址发送通知;
  8. 商户在回调页面获取回调信息,并作相关业务逻辑处理,并根据成功或失败的情况做跳转到到支付成功或失败页面的处理;
  9. 商户后台异步通知地址收到支付宝的异步通知,并做相关业务逻辑处理,最终返回success或fail的标识以告知支付宝商户后台已经收到通知。

 

 

新版本业务流程:

  1. 用户在电脑下单,选择支付宝支付;
  2. 商户后台生成订单,并准备和组合好调起支付宝支付所需的参数,调用统一下单接口;
  3. 支付宝返回前台页面请求需要的完整form表单的html(包含自动提交脚本),商户直接输出该HTML到前台页面,最终将支付二维码展示给用户;
  4. 用户打开手机支付宝进行扫码支付;
  5. 支付宝后台检测到支付成功,跳转至商户回调页面,并向商户异步通知地址发送通知;
  6. 商户在回调页面获取回调信息,并作相关业务逻辑处理,并根据成功或失败的情况做跳转到到支付成功或失败页面的处理;
  7. 商户后台异步通知地址收到支付宝的异步通知,并做相关业务逻辑处理,最终返回success或fail的标识以告知支付宝商户后台已经收到通知。

 

 

 

2. 手机网站支付

支付宝的手机网站支付目前也分新老版本两种,但由于惠庶网项目采用的是新版本支付,因此下面只介绍新版本的业务流程。

  1. 用户在手机端下单,选择支付宝支付;
  2. 商户系统按照手机网站支付接口alipay.trade.wap.payAPI的参数规范生成订单数据,并以包含form表单的HTML形式输出到前端页面;
  3. 前端页面通过form表单的形式请求到支付宝;
  4. 支付宝将页面跳转至支付宝收银台,如果用户手机安装了支付宝APP,则自动唤起支付宝APP,否则就调用支付宝网页支付;
  5. 用户输入密码进行支付操作;
  6. 支付宝后台检测到支付成功,跳转至商户回调页面,并向商户异步通知地址发送通知;
  7. 商户在回调页面获取回调信息,并作相关业务逻辑处理,并根据成功或失败的情况做跳转到到支付成功或失败页面的处理;
  8. 商户后台异步通知地址收到支付宝的异步通知,并做相关业务逻辑处理,最终返回success或fail的标识以告知支付宝商户后台已经收到通知。

 

分析和总结

 1. 支付宝支付的新老版本电脑网站支付、手机网站支付支付接口的请求参数中都有两个参数return_url和notify_url,return_url传的是支付完成后支付宝要跳转的同步回调地址,notify_url传的是支付宝支付完成后要发送异步通知的地址;但是支付宝向这两个地址发送请求的顺序是不定的,因此在两个地址的后台都需要做针对支付完成后订单业务逻辑处理的操作;区别在于return_url操作完成以后直接跳转到支付成功或失败页面,而notify_url则是返回SUCCESS或FAIL给到支付宝;

 2. 支付宝电脑网站支付的老版本demo在官方文档已经找不到,因此如果不是原来项目中已经使用了老版本开发demo,都建议使用新版本demo进行开发;

 3. 电脑网站支付新老版本、手机网站支付调起支付宝支付的区别:

  电脑网站老版本:根据及时到账接口提供的请求参数说明,调用SDK生成可以调起支付宝支付的URL,商户后台直接做Respopnse.Redirect(URL)操作,既可调起支付宝支付。

  电脑网站新版本:商户调用统一下单接口,统一下单接口返回完整form表单的HTML(HTML中包含自动提交表单的脚本),商户后台输出该form表单,即可调起支付宝支付。

  手机网站新版本:商户后台向支付宝api发起支付请求,支付宝api返回完整form表单的HTML(HTML中包含自动提交的脚本),商户后台输出form表单。即可掉漆支付宝支付。

 4. 对于手机网站支付,在用户将有form表单的HTML字符串输出后,自动提交脚本会向支付宝收银台发起请求,支付宝收银台会先判断用户手机上是否安装了支付宝APP,如有安装,则调起支付宝APP发起支付功能,如果没有,则跳转至网页版支付宝支付,实现支付功能。

 

如有发现错误及解释不当之处,欢迎大家指正。

 

参考文档

手机网站支付(新版):https://docs.open.alipay.com/203/105285/

电脑网站支付(老版):https://docs.open.alipay.com/62/104746/

电脑网站支付(新版):https://docs.open.alipay.com/270/105899/

 

转载请注明本文出处:https://www.cnblogs.com/luckyyang/p/9517402.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_792445.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站架构面试要点

2019独角兽企业重金招聘Python工程师标准>>> 分层 分割 分布式 集群 缓存 异步 冗余 自动化 安全 大型网站架构要素 性能 性能的指标&#xff1a;响应时间、并发数、吞吐量、性能计数器 转载于:https://my.oschina.net/u/3421984/blog/1635800

IC设计方面资源的好网站

2019独角兽企业重金招聘Python工程师标准>>> http://www.ictown.com/ 转载于:https://my.oschina.net/u/2963604/blog/2120219

利用PHP扩展Taint找出网站的潜在安全漏洞实践

一、背景 笔者从接触计算机后就对网络安全一直比较感兴趣&#xff0c;在做PHP开发后对WEB安全一直比较关注&#xff0c;2016时无意中发现Taint这个扩展&#xff0c;体验之后发现确实好用&#xff1b;不过当时在查询相关资料时候发现关注此扩展的人数并不多&#xff1b;最近因为…

快速找出网站中可能存在的XSS漏洞实践(一)

一、背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程&#xff0c;课程当中有讲到XSS的挖掘方式&#xff0c;所以在录制课程之前需要做大量实践案例&#xff0c;最近视频已经录制完成&#xff0c;准备将这些XSS漏洞的挖掘过程记录下来&#xff0c;方便自己也方便…

通过Web安全工具Burp suite找出网站中的XSS漏洞实战(二)

一、背景 笔者6月份在慕课网录制视频教程XSS跨站漏洞 加强Web安全,里面需要讲到很多实战案例&#xff0c;在漏洞挖掘案例中分为了手工挖掘、工具挖掘、代码审计三部分内容,手工挖掘篇参考地址为快速找出网站中可能存在的XSS漏洞实践(一)https://segmentfault.com/a/1190000016…

通过代码审计找出网站中的XSS漏洞实战(三)

一、背景 笔者此前录制了一套XSS的视频教程&#xff0c;在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完&#xff0c;内容有一些关联性&#xff0c;其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践…

通过代码审计找出网站中的XSS漏洞实战(三)

一、背景 笔者此前录制了一套XSS的视频教程&#xff0c;在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完&#xff0c;内容有一些关联性&#xff0c;其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践…

阿里云快速网站搭建详解

一、网站建站流程 主要步骤: 要有一个域名购买主机要有数据库,一般购买主机赠送解析域名下载网站程序(演示用的WordPress)上传程序安装程序(配置数据库、网站基本信息、管理员信息等)二、DNS服务器快速入门 DNS服务概述 DNS(Domain Name System)域名系统,在TCP/IP 网…

网易易盾推出政企网站安全方案 主打主动治理、防篡改

今天&#xff0c;网站已经成为企业、政府、教育等机构必备的“生产资料”&#xff0c;它是信息展示、服务提供、营销宣传以及企业形象的重要渠道。然而&#xff0c;如此重要的对外窗口&#xff0c;在今天仍遭受连绵不绝的网站篡改等安全事件。 网页篡改是指恶意破坏或更改网页内…

VS2012 发布网站步骤

VS2012中发布网站的方式与以往有了不同&#xff0c;前面的版本发布如图 而2012点publish的时候弹出框有所不同&#xff0c;这边需要新建一个profile名字随便起&#xff0c;发布的方式有好几种&#xff0c; 当然不同的方式配置不同&#xff0c;用的最多的就是files system了 选择…

在Github上搭建自己的博客网站

程序员都应该有写博客的习惯&#xff0c;博客可以作为知识管理&#xff0c;提升自己。当然写博客的地方有很多&#xff0c;CSDN&#xff0c;博客园以及新浪&#xff0c;网易等等。但是如果使用Github Pages来搭建一个有自己域名的独立网站&#xff0c;会不会更加炫酷呢&#xf…

使用七牛云存储在网站中进行图片外链

在CSDN中写博客&#xff0c;如果想在文章中插入一张图片&#xff0c;其实是非常简单的&#xff0c;只要从你本机进行图片选择&#xff0c;然后选择上传&#xff0c;图片就会上传到CSDN的服务器&#xff0c;到时候在文章显示的时候就会读取该图片。但是如果是在自己的搭建的网站…

使用百度统计对网站进行流量分析和统计

在自己建立一个网站后&#xff0c;最关心的问题就是到底有多少人访问了我的网站&#xff0c;也就是我的网站的流量到底是多少。以此可以不断进行完善和优化。这里将会使用百度的两个统计工具&#xff1a;百度统计和百度站长来进行分析。以我自己的建立的基于Hexo博客网站 : htt…

按钮制作网站收集

As Button Generator is the Button Generator 网站地址&#xff1a;http://jirox.net/AsButtonGen/ FlashButton.com free Animated Flash Buttons Menu Generator 网站地址&#xff1a;http://www.flashbuttons.com/ Da Button Factory Create pretty buttons online, quickl…

Logo在线制作网站收集

Supalogo - create nice logo 简单的Logo在线生成器 网站地址&#xff1a;http://supalogo.com/ 效果&#xff1a; 网站预览图&#xff1a; 说明一点就是&#xff0c;该网站也支持中文&#xff0c;日文等等。不过格式只有一两种。 Logo Ease -Free Logo Design Logo Ease…

0days最好的破解网站

best 0days ,0days,crack,patch,keymaker,keygen,bbl,download Search result!不知道有没有人知道这个东西&#xff0c;号称最好的破解&#xff0c;补丁&#xff0c;序列号生成等等之类的。网站地址&#xff1a; http://0days.51cc.net/

歌词搜索网站收集

LRC123 LRC歌词搜索引擎 网站地址&#xff1a;http://www.lrc123.com 飞叶歌词网 -全球最大中文LRC歌词搜索引擎 网站地址&#xff1a;http://lrc.aspxp.net 歌词搜索的网站蛮多的&#xff0c;LRC123网站不错。

图片特效制作网站收集

3D-box maker 3d-box & package on-line for free 网站地址&#xff1a;http://3d-pack.com / 效果图&#xff1a; Preloaders.net | Free AJAX animated loading gifs | 3 dimensional (3D) 三维进度条、Load图案制作 网站地址&#xff1a;http://preloaders.net / 缩略…

11个超棒的iOS开发学习网站

我相信&#xff0c;要想从一个"还不错"的人变成一个卓越的人&#xff0c;我们需要不停地向他人学习&#xff0c;同时还得尽早地适应最新的技术和工具。除了苹果官方文档网站之外&#xff0c;列举了一些能获取有价值的文章和资源的网站&#xff0c;这些网站能够帮助我…

mysql is null 性能_「isnull」MySql数据库的优化-MySql中is NULL、ISNULL()和IFNULL()运行速度的比较 - seo实验室...

isnull在查询过程中&#xff0c;我们经常用到非空和is null的查询&#xff0c;为了更高效的查询&#xff0c;我们应该知道那种方法更快。在上一篇中&#xff0c;我们已经添加了一些数据。根据这些数据我们就可以来做一些验证。第一步&#xff0c;is NULL要比ISNULL()的比较SELE…