1、实体对应关系:

  Application  — 支付记录实体 --  支付记录详情

2、流程

  1、生成订单选择支付类型

  2、支付宝:PC端、手机端、扫码;微信:微信公众号支付、扫码支付、H5支付。

    客户端版本(Browser-Agent):MicroMessenger(微信浏览器)、AliApp、Mobile或iPad、PC

  3、对于微信中

    3.1、支付需要用户授权获取openId

    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

    通过拦截器拦截微信中的请求来获取openId放入cookie中时效5分钟,openId为空时进行授权,通过code换取网页授权access_token获取openId,

    redirect_uri到授权回调设置cookie中openid的值时效5分钟,Redirect到请求页面,完成授权。

    3.2、下单之前先检查是否完成交易

    3.3、生成签名:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3,可利用treemap自然排序,封装成xml参数,

      MD5方式签名

      调用下单接口:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

      获取PREPAY_ID,存放在redis缓存中,时效2小时,过期重新下单霍如PREPAY_ID

    3.4、H5调起微信支付的内置JS

    3.5、定时回调接收通知

    3.6、JSAPI流程:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4

    3.7、可参考:https://www.cnblogs.com/yimiyan/p/5603657.html

3.支付API

  https工具:https://github.com/kevinsawicki/http-request

  微信api:https://pay.weixin.qq.com/wiki/doc/api/index.html

  支付宝api:https://docs.open.alipay.com/270/105899/

  支付宝老接口:https://docs.open.alipay.com/62/104743/

    

    

  

支付宝&微信统一支付的更多相关文章

  1. 微信原生支付 Native扫码支付( V3.3.7 版本)

    原文:微信原生支付 Native扫码支付( V3.3.7 版本) [尊重别人的劳动成果,转载请注明出处:一缕晨光工作室,www.wispdawn.com] 前言 辛苦研究三天,遇到各种困难,最终还是克 ...

  2. ThinkPHP 5 整合支付宝微信支付(支付宝H5,微信H5、APP支付、公众号支付)

    因项目没有PC站所以没有写电脑网站支付. Pay.php支付控制器 <?php // +----------------------------------------------------- ...

  3. 记录:c#实现微信,支付宝扫码支付(一)

    因为公司系统业务需要,这几天了解了一下微信和支付宝扫码支付的接口,并用c#实现了微信和支付宝扫码支付的功能. 微信支付分为6种支付模式:1.付款码支付,2.native支付,3.jsapi支付,4.a ...

  4. php微信jsapi支付 支付宝支付 两码合一

    产品开会提出了这样的需求:一个二维码可以微信支付也可以支付宝支付 经过自己的钻研以及询问技术高人(本人代码一般般)和网上搜索 最终实现其功能  我用微信jsapi 和 支付宝网页支付 其实并不怎么难: ...

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

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

  6. JavaWEB后端支付银联,支付宝,微信对接

    注:本文来源于:<  JavaWEB后端支付银联,支付宝,微信对接  > JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所 ...

  7. 移动支付--银联,支付宝,微信(android)

    在这个移动互联网快速发展的时代,手机已经成为人们生活或者出行之中必不可少的设备了,如今非常多城市的商户都能够採用支付宝,微信支付了.人们出门仅仅须要随身携带带手机.不用带大量现金就能够放心购物了.如今 ...

  8. iOS开发集成支付宝支付、支付宝&微信支付

    支付宝支付: 参考链接:https://www.jianshu.com/p/60175e525c0e https://blog.csdn.net/zhonggaorong/article/detail ...

  9. MUI 支付案例(支付宝/微信)

    首先说明一下,本文借鉴了多位博主的文章,所以会看到很多一样的代码. 写这篇博客主要目的是为了便于后期查看(不好之处,敬请留言吐槽),案例经本人测试,是可以使用的. 先上效果图 前端HTML代码: &l ...

随机推荐

  1. Java:在不同界面样式下JPopupMenu与鼠标事件mousePressed表现的结果不同!

    今天遇到一个郁闷的事儿: 在一个JFrame上放了一个JList元件,这个JList元件添加了鼠标事件: mouseReleased.mousePressed ... 其中,在mouseRelease ...

  2. 常用linux命令(项目部署)

    centos 图形 命令行 界面切换 如果在图形界面下,按:Ctrl+Alt+F2进入如下命令行界面 -------------- 看当前目录的路径: pwd ................... ...

  3. 窗体监听事件WindowListener

    EXIT_ON_CLOSE:结束窗口所在的应用程序.在窗口被关闭的时候会退出JVM. DISPOSE_ON_CLOSE:隐藏当前窗口,并释放此窗体占有的资源.如果程序没有其他线程在运行,当所有窗口都被 ...

  4. 关于navicat远程连接mysql问题

    如果你想连接你的mysql的时候发生这个错误: ERROR 1130: Host '192.168.1.81' is not allowed to connect to this MySQL serv ...

  5. MUI 自定义从底部弹出的弹出框

    1)效果: 点击“点击就送”那个按钮之后,弹窗从底部弹出并自带蒙层,然后点击弹窗之外的灰色部分就从底部消失: 第一步:引入 mui.css或者mui.min.css 引入 mui.min.js或者mu ...

  6. 使用LTP套件对Linux系统进行压力测试

    使用LTP套件对Linux系统进行压力测试 https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=6764 https ...

  7. 51job_selenium测试

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  8. redis工具类 ----RedisPoolUtil

    这里介绍一下,这个工具类不是在分布式环境下来用的,就是我们平常使用的,单机状况下,为什么博主开头要这样强调呢?因为,之前见网上有些博友有这样封装的,也有RedisShardedPoolUtil 封装的 ...

  9. Java Calendar使用总结

    JavaCalendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/a ...

  10. CodeForces - 896A Nephren gives a riddle

    A. Nephren gives a riddle time limit per test 2 seconds memory limit per test 256 megabytes input st ...