支付宝&微信统一支付

1、实体对应关系:

  Application(包括appId,秘钥) — OneToMany   —  PaymentOrder(支付记录实体):(订单系统生成的订单号,订单商品信息,金额,返回订单系统的url,微信、支付宝服务器主动通知商户服务器里指定的url等) — OneToMany   —    PaymentRecord(支付记录详情):记录支付类型(wepay、alipay),客户端类型(普通浏览器、微信浏览器),客户端ip、通知信息等

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/

    

    

  

支付宝&微信统一支付

上一篇:微信域名防屏蔽技术,APP推广微信域名怎么避免防红,如何防拦截?


下一篇:安卓手机微信不能打开App下载地址的问题 微信实现点开网址直接跳转浏览器