一、wap站

①、支付宝接入

  1、开发前准备:申请一个通过实名认证的企业支付宝账号,并申请开通手机WAP支付功能。

  2、流程

    参数准备:

    1. 企业支付宝账号的PID(也叫ParnerID)和KEY,如果使用RSA签名而不是MD5的话,还要把RSA私钥准备好
    2. 支付时用户看到的东西:商品名称(subject)、支付总额(total_fee)、购买数量(通常都是1吧)
    3. 交易后的跳转地址,交易成功后用户可以手工点击,或页面延迟自动跳转到这个地址(return_url)
    4. 交易状态异步通知地址,交易成功或交易关闭会把消息POST到这个地址(notify_url)

    流程图:

    

    流程解释:     

    1. 用户点击购买按钮(或其他形式),向网站发起购买请求
    2. 网站创建订单,指派一个唯一订单号
    3. 网站把订单号、企业支付宝账号、交易金额、数量等信息,用私钥签名发送给支付宝
    4. 支付宝创建一个交易订单,返回一个交易令牌(token)
    5. 网站按照指定要求,用token和自己的私钥,构造一个重定向得到支付地址
    6. 网站把重定向地址返回给浏览器
    7. 浏览器自动重定向到该地址,即包含了token、网站签名的支付宝交易页面
    8. 支付宝显示当前交易金额、数量、卖家等信息
    9. 用户用自己的支付宝账号支付这笔金额
    10. 支付宝把用户支付成功(或失败)这个消息和订单号加上支付宝的签名,使用HTTP POST的方式通知网站(失败的话,会隔段时间重新发送)
    11. 网站处理交易后续逻辑(发货、订单状态存储之类的)
    12. 网站返回"success"字符串给支付宝,表示该通知已经处理,不用再重发
    13. 支付宝显示支付成功页面给用户(这一步和第10步是不分先后发生的)
    14. 支付成功页面延迟自动跳转,或用户点击“返回商户页面”,跳转到网站的支付结束页面(此时不一定成功处理支付宝发来的通知),但会在URL带上当前的订单号和状态。

  3、总结:整个流程主要分三步:一是申请支付宝交易号(获取token),这一步可以理解为,让支付宝验证网站的有效性、让网站指定该交易要支付多少钱 二是用户到支付宝页面付款,这一步可以理解为,让支付宝验证用户有效性,让用户在一个不受网站监视的环境下进行支付 三是用户付款后,处理结果页面告诉用户支付成功(同步通知),另外异步通知网站服务器该订单已支付。

②、微信支付接入

  1、开发前准备:商户在微信公众平台(申请扫码支付、公众号支付)或开放平台(申请APP支付)按照相应提示,申请相应微信支付模式。微信支付工作人员审核资料无误后开通相应的微信支付权限。微信支付申请审核通过后,商户在申请资料填写的邮箱中收取到由微信支付小助手发送的邮件,此邮件包含开发时需要使用的支付账户信息。

  2、流程:

    

    流程解释

      1、用户在商户侧完成下单,使用微信支付进行支付

      2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB

      3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起微信支付中间页

      4、中间页进行H5权限的校验,安全性检查。

      5、如支付成功,商户后台会接收到微信侧的异步通知

      6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)

      7、商户在展示页面,引导用户主动发起支付结果的查询

      8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态

      10、展示最终的订单支付结果给用户

③、银联接入

  1、开发前准备:商户与银联签约并支付费用,审核通过之后获取商户ID和秘钥、下载银联接入Demo。

  2、流程图:

    

    流程图解释:

二、手机APP

①、支付宝接入

  1、开发前准备:申请一个通过实名认证的企业支付宝账号、下载SDK开发包、提供APP apk以备审核,审核通过后即可进行代码集成。

  2、流程

    流程图:

    

    流程解释:

    1. app携带支付信息调用支付接口请求支付宝客户端调起支付界面;
    2. 用户操作,输入密码支付,支付成功;直接返回取消支付;出现错误,支付失败;进入支付界面,但输入密码支付,支付待确认;
    3. 支付宝客户端将支付结果告诉app客户端,商户服务器通知app服务器支付结果;
    4. app客户端处理支付结果;
    5. app服务器处理支付结果。

②、微信支付接入

  1、开发前准备:在微信开放平台上申请开发者帐户,申请移动应用,并且申请开通微信支付。经过一系列流程,开通会有邮件,得到对应的(1)开放平台APPID(2)商户号MCHID(3)商户密钥key、下载微信SDK开发包。

  2、流程:

    流程解释:

      1. 客户端请求订单

      2.认证商户,获取access_token

      3、组装生成预定单所需参数并签名

      4、调用微信统一下单接口并传递参数,得到预订单号

      5、对得到的预定单参数再次签名

      6、调起微信支付并验证参数有效性

      7、验证通过,提示用户输入支付密码

      8、提交支付,异步返回支付结果和订单详情

      9、客户端同步跳转页面。

  

③、银联支付接入:

  1、开发前准备:商户与银联签约并支付费用,审核通过之后获取商户ID和秘钥、下载银联接入Demo、下载集成到APP中的SDK开发包                  (https://open.unionpay.com/ajweb/help/file)。

  2、流程图:

    

  

    流程图解释:

      (1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;

      (2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;

      (3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复至商户后台(应答要素:交易流水号等);

      (4)商户后台接收到交易流水号(TN),将交易流水号返回至客户端;

      (5)客户端通过交易流水号(TN)调用支付控件;

      (6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;

      (7)支付成功后,银联后台将支付结果通知给商户后台;

      (8)银联后台同时也将支付结果通知支付控件;

      (9)支付控件显示支付结果并将支付结果返回至客户端;

     此处备注:我们是通过后台获取订单,我们可以根据商品id等信息通过后台接口获取订单信息,对订单支付流程的签名加密过程后台完成。

wap站、手机APP 接入支付宝、微信、银联支付。的更多相关文章

  1. 支付sdk —— 该组件为封装了 微信,支付宝,银联支付

    [精品]  支付组件 简要说明该组件为封装了 微信,支付宝,银联支付, 一键快速集成,几行代码即可集成 微信,支付宝,银联支付. ## 示例: # 测试账号:1.银联支付:提供测试使用卡号.手机号信息 ...

  2. ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付接口及同步跳转及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET ...

  3. 【转载】ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇

    转自:http://www.cnblogs.com/essenroc/p/8627775.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付 ...

  4. 手机网站支付如何接入支付宝简易版支付功能PHP版

    接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台  2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的 ...

  5. Android接入支付宝和银联

    支付宝接入参考链接:https://software.intel.com/zh-cn/node/542608 银联接入参考链接:http://blog.csdn.net/gf771115/articl ...

  6. Laravel 中使用支付宝、银联支付、微信支付进行支付

    Laravel Packages 为 Laravel 提供了强大的扩展功能,为从 1 到 n 提供无限可能,这其中就包括支付, Laravel 官方提供的 Cashier 包集成对 Stripe 的支 ...

  7. 支付宝&微信统一支付

    1.实体对应关系: Application  — 支付记录实体 --  支付记录详情 2.流程 1.生成订单选择支付类型 2.支付宝:PC端.手机端.扫码:微信:微信公众号支付.扫码支付.H5支付. ...

  8. 关于app集成支付宝应用内支付的问题总结

    pem文件生成,将合作伙伴密钥复制到notepad++中,每45个字符回车,去除空格,头尾加上标题,文件需保存为无BOM的UTF8格式,就OK.  可以每行64个字符,共216个字符.   近来处理了 ...

  9. spring_boot_pay支付宝,微信,银联支付详细代码案例

    spring-boot-pay 支付服务:支付宝,微信,银联详细代码案例(除银联支付可以测试以外,支付宝和微信支付测试均需要企业认证,个人无法完成测试),项目启动前请仔细阅读 注意事项  . 友情提示 ...

随机推荐

  1. mysqldump与source

    mysqldump示例 mysqldump --default-character-set=utf8 -d --opt -hlocalhost -uroot -p123456 --where=&quo ...

  2. 深入理解Java中的组合和继承

    Java是一个面向对象的语言.每一个学习过Java的人都知道,封装.继承.多态是面向对象的三个特征.每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用.所以,很多开发人 ...

  3. MySQL运行状态show status中文详解

    状态名 作用域 详细解释 Aborted_clients Global 由于客户端没有正确关闭连接导致客户端终止而中断的连接数 Aborted_connects Global 试图连接到MySQL服务 ...

  4. 第一章 Java常用的并发类

    注:本系列博客主要参考于<分布式Java应用:基础与实践>,林昊 著 1.常用的并发集合类 ConcurrentHashMap:线程安全的HashMap的实现 CopyOnWriteArr ...

  5. Lichee (五) sysconfig1.fex 配置系统

    sysconfig配置系统,作为一个通用的软件平台,还希望通过它,可以适应用户不同的方案.通过给出一个对应的配置,用户的方案就可以自动运行,而不需要修改系统里面的代码,或者重新给出参数. 配置脚本的本 ...

  6. Spring Boot应用连接数据库MySQL、及一个简单的demo

    一.修改pom.xml文件 在项目的pom.xml文件上增加如下代码,添加依赖文件. <dependency> <groupId>mysql</groupId> & ...

  7. Android应用开发学习笔记之Fragment

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Fragment翻译成中文就是“碎片”.“片断”的意思,Fragment通常用来作为一个Activity用户界面的一 ...

  8. TJ Holowaychuk是怎样学习编程的?

    TJ Holowaychuk是怎样学习编程的? 学习了:https://blog.csdn.net/wozaixiaoximen/article/details/49507111 Q:TJ Holow ...

  9. JavaScript高级程序设计(第3版)学习笔记·第8章——浏览器对象模型BOM

    转自:http://www.shaoqun.com/a/43768.aspx 访问和操作浏览器窗口的模型称为浏览器对象模型BOM(Browser Object Model),但习惯上是把所有针对浏览器 ...

  10. HTTP请求格式和HTTP响应格式

    主要内容: 1.HTTP请求格式 2.HTTP响应格式 一.HTTP请求格式 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:l   请求方 ...