支付宝集成交互流程



交互流程


功能流程

image

流程说明(以Android平台为例):

  1. 第4步:调用支付接口:此消息就是本接口所描述的开发包提供的支付对象PayTask,将商户签名后的订单信息传进pay方法唤起支付宝收银台,订单格式具体参见“请求参数说明”。
  2. 第5步:支付请求:手机支付宝支付开发包将会按照商户客户端提供的请求参数发送支付请求。
  3. 第8步:接口返回支付结果:商户客户端在第4步中调用的支付接口,会返回最终的支付结果(即同步通知),参见“同步通知参数说明”。
  4. 第12步:异步发送支付通知:手机支付宝支付服务器端发送异步通知消息给商户服务器端(备注:第12步一定发生在第6步之后,但不一定晚于7~11步),参见“服务器异步通知参数说明”。

数据交互

image

  1. 构造订单数据并签名
    商户服务器端根据手机支付宝支付开发包的接口规则,通过程序生成得到签名结果及要传输给手机支付宝支付开发包的数据集合。签名相关的公私钥生成及配置规则,见PID和密钥管理。
  2. 发送请求数据
    把构造完成的数据集合传递给手机支付宝支付开发包。
  3. 手机支付宝支付开发包对请求数据进行处理
    手机支付宝支付开发包将请求数据根据业务规则包装后传递给手机支付宝支付服务器端,服务器端得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求。
  4. 返回处理的结果数据
    对于处理完成的交易,支付宝会以两种方式把数据分别反馈给商户客户端和商户服务器端。 
    1. 在手机客户端上,手机支付宝支付开发包直接把处理的数据结果反馈给商户客户端;
    2. 在服务器端上,手机支付宝支付服务器端主动发起通知,调用商户在请求时设定好的页面路径(参数notify_url,如果商户没设定,则不会进行该操作)。
  5. 商户对获取的返回结果数据进行处理
    商户在客户端同步通知接收模块或服务器端异步通知接收模块获取到支付宝返回的结果数据后,可以结合商户自身业务逻辑进行数据处理(如:订单更新、自动充值到会员账号中等)。同步通知结果仅用于结果展示,入库数据需以异步通知为准。


虚线为应用服务器和移动端的交互,

交互流程

更新时间:2016/07/08 访问次数:142371
  • 功能流程
  • 数据交互

功能流程

image

流程说明(以Android平台为例):

  1. 第4步:调用支付接口:此消息就是本接口所描述的开发包提供的支付对象PayTask,将商户签名后的订单信息传进pay方法唤起支付宝收银台,订单格式具体参见“请求参数说明”。
  2. 第5步:支付请求:手机支付宝支付开发包将会按照商户客户端提供的请求参数发送支付请求。
  3. 第8步:接口返回支付结果:商户客户端在第4步中调用的支付接口,会返回最终的支付结果(即同步通知),参见“同步通知参数说明”。
  4. 第12步:异步发送支付通知:手机支付宝支付服务器端发送异步通知消息给商户服务器端(备注:第12步一定发生在第6步之后,但不一定晚于7~11步),参见“服务器异步通知参数说明”。

数据交互

image

  1. 构造订单数据并签名
    商户服务器端根据手机支付宝支付开发包的接口规则,通过程序生成得到签名结果及要传输给手机支付宝支付开发包的数据集合。签名相关的公私钥生成及配置规则,见PID和密钥管理。
  2. 发送请求数据
    把构造完成的数据集合传递给手机支付宝支付开发包。
  3. 手机支付宝支付开发包对请求数据进行处理
    手机支付宝支付开发包将请求数据根据业务规则包装后传递给手机支付宝支付服务器端,服务器端得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求。
  4. 返回处理的结果数据
    对于处理完成的交易,支付宝会以两种方式把数据分别反馈给商户客户端和商户服务器端。 
    1. 在手机客户端上,手机支付宝支付开发包直接把处理的数据结果反馈给商户客户端;
    2. 在服务器端上,手机支付宝支付服务器端主动发起通知,调用商户在请求时设定好的页面路径(参数notify_url,如果商户没设定,则不会进行该操作)。
  5. 商户对获取的返回结果数据进行处理
    商户在客户端同步通知接收模块或服务器端异步通知接收模块获取到支付宝返回的结果数据后,可以结合商户自身业务逻辑进行数据处理(如:订单更新、自动充值到会员账号中等)。同步通知结果仅用于结果展示,入库数据需以异步通知为准。

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

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

相关文章

VxLAN基础

转自:http://blog.csdn.net/freezgw1985/article/details/16354897 一 . 为什么需要Vxlan1. vlan的数量限制4096个vlan远不能满足大规模云计算数据中心的需求2. 物理网络基础设施的限制基于IP子网的区域划分限制了需要二层网络连通性的应用负载的部署3. TOR交换机MA…

C语言程序代码优化

我认为一个好的用于科学计算的程序代码应该:算法漂亮精妙,程序简洁易懂,运算快速,节省内存。这里有的地方是矛盾的,比如简洁vs易懂,时间vs空间,找个平衡吧。目前来看时间要比空间宝贵一些。写程…

如何在苹果官网下载旧版本的Xcode 方法

1 在百度里输入“苹果开发者中心“,进入以下页面。点击页面中的“Member Center" 2 出现登录界面。这是需要苹果开发者帐号的,没有帐号的可以选择“Create Apple ID”进行注册。已经注册的选择“Sign In"登录 3 页面跳转后,选择…

【转】android多分辨率适配

前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机。因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法。 先介绍一下所走的弯路,由于android的布局文件存放在res的…

Java线程池介绍

根据摩尔定律(Moore’s law),集成电路晶体管的数量差不多每两年就会翻一倍。但是晶体管数量指数级的增长不一定会导致 CPU 性能的指数级增长。处理器制造商花了很多年来提高时钟频率和指令并行。在新一代的处理器上,单线程程序的执…

cocoa pods的安装与我遇到的问题

1.打开终端 终端输入 ruby -v 查看ruby的版本 打印代码: ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15] 2. 更换ruby镜像 终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得) a.移…

Implicit declaration of function 'NSFileTypeForHFSTypeCode' is invalid in C99

一般出现该问题是因为通过C调用了unix/linux 底层接口,所以需要调整c语言的编译选项,设置方法见下图:(根据实际情况选择相应的编译选项)

DebugView 调试入门

参考链接:http://blog.csdn.net/jiankunking/article/details/44984487 软件下载地址:点击打开链接 debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。支持Debug、Release模式编译的程序(即该软件捕获的是exe直接运…

DebugView使用笔记

1. 什么是DebugView? 它是Sysinternals公司的系列调试工具。可以捕获程序中由TRACE()和OutputDebugString输出的信息。 2. C需要完成哪些工作呢? 将打印的信息用OutputDebugString输出,示例: [cpp] view plaincopy #include "stdio.h&q…

QT之深入理解QThread

QT之深入理解QThread 理解QThread之前需要了解下QThread类,QThread拥有的资源如下(摘录于QT 5.1 帮助文档):在以上资源中,本文重点关注槽:start();信号:started()、finished()&#…

springMVC数据封装成POJO

springMVC把前台的数据封装为POJO与struts2的封装形式不同。struts2需要在控制器声明需封装的POJO,而springMVC不需要任何准备工作,只需在相应的方法的参数中加上需封装的POJO,当用户提交表单时,springMVC会根据表单中dom元素的na…

10.11 安装pod

原文地址:http://www.jianshu.com/p/5fc15906c53a 感谢。 更新升级10.11 cocoapods安装出问题最简单的解决方法 这是因为10.11把cocoapods直接干掉了 sudo gem install -n /usr/local/bin cocoapods 再加一句,完美解决 sudo xcode-select --switch /App…

JavaScript中的原型继承原理

在JavaScript当中,对象A如果要继承对象B的属性和方法,那么只要将对象B放到对象A的原型链上即可。而某个对象的原型链,就是由该对象开始,通过__proto__属性连接起来的一串对象。__proto__属性是JavaScript对象中的内部属性&#xf…

建模元件有哪些在MapleSim中

信号库:包含通用信号模块、布尔、控制器、离散信号模块、信号源、线性信号模块、非线性信号模块、时间离散信号模块、查询表、信号转换器、数学运算、关系元件、特殊信号模块,应用案例。 电子库:包含电阻、运算放大器、二极管、步进电机、模拟…

【C++】VS2010将写好的程序打包成安装文件发布

参考链接:http://blog.csdn.net/yongh701/article/details/51326142 我们可以将自己写好的VS2010程序打包成安装文件,给用户安装,具体步骤如下: 1、如下图,同样是新建一个项目,但是这次是新建一个其它项目…

01_jeecms建站

一、环境安装 JDK5TOMCAT5.5MYSQL5及以上http://www.jeecms.com/tutorial/index.jhtml参考环境安装篇二、解压文件安装包jeecms-v5zip,如图图1ROOT文件夹复制放到tomcat下的webapps文件夹(注:请先删除webapps下原有的默认ROOT文件夹)如不想部…

WiFi基本知识

转自:http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号IEEE 802.11bIEEE 802.11aIEEE 802.11gIEEE 802.11n标准发布时间1999年9月1999年9月2003年6月2009年9月工作频率范围2.4-2.4835GHz 5.150-5.350GHz5.475&a…

libev 宏展开

想看源码,宏太多,看着累,宏展开,再看,功力时间不够,先放下 放上宏展开后的代码。 libev4.20 展开方示为 ./configure 修改makefile文件,字符串 替换CC为 CPP 注意要把基础的CC定义保留 make mv …

FreeRTOS高级篇7---FreeRTOS内存管理分析

原文:http://blog.csdn.net/zhzht19861011/article/details/51606068 内存管理对应用程序和操作系统来说都非常重要。现在很多的程序漏洞和运行崩溃都和内存分配使用错误有关。 FreeRTOS操作系统将内核与内存管理分开实现,操作系统内核仅规定了必要的内…

FreeRTOS学习笔记——互斥型信号量

来自:http://blog.csdn.net/xukai871105/article/details/43456985 0.前言 在嵌入式操作系统中互斥型信号量是任务间资源保护的重要手段。下面结合一个具体例子说明FreeRTOS中的互斥型信号量如何使用。 【相关博文】 【FreeRTOS STM32移植笔记】 【FreeRTOS学习笔记…