zoukankan      html  css  js  c++  java
  • 支付整理

    今天整理一下支付流程
    有多种支付方式,大体流程大同小异,存在前台同步回调,后台异步回调。
    app中对接的支付宝支付,微信支付,云闪付等。
    wap站端。
    pc端除了微信支付我熟悉其他支付方式略知一二。

    wap端,支付方式包括,支付宝(当然微信内被屏蔽,需要复制支付链接重定向),微信(微信端,微信H5支付),快钱,云闪付(非本人开发),通联聚合支付(微信浏览器的微信支付其底层用的是通联微信支付),大额支付(快钱大额支付)。

    首先介绍一下大概我的理解
    为什么我们系统的微信支付改为通联聚合支付,我的理解是,因我们直接跟微信结算手续费率高,降低成本,如果我们跟通联进行结算费率低,
    通联的聚合支付就是,把原先的支付宝、微信和云闪付等平台支付方式进行套壳。其底层还是相关平台支付。

    微信支付分为两种,微信内(判断是否是微信浏览器),手机端微信外H5支付。

    支付宝手机端:
    封装表单提交

    form id='alipaysubmit' name='alipaysubmit' action='https://mapi.alipay.com/gateway.do?_input_charset=utf-8' method='post'
    input支付宝需要的参数 -->
    input订单号或者请求单号(用于同步或异步回调关联订单用)
    document.forms['alipaysubmit'].submit();
    后端返回拼装好的submit请求,前台直接$("#zfbHtmlText").html(data.data.zfbHtmlText);进而完成提交表单。

    微信(微信浏览器内):
    重定向授权路径,里面包含redirect_uri回调地址
    topay获取微信回调信息。
    注意:参数回调需要加解密校验,否则存在漏洞
    跳转到接受参数页面,如jsp页面。
    jsp中内嵌javascript

      	function callpay(){
    		try{
    			 WeixinJSBridge.invoke('getBrandWCPayRequest',{
    		  		 "appId" : $("#appid").val(),
    		  		 "timeStamp" : $("#timeStamp").val(), 
    		  		 "nonceStr" : $("#nonceStr").val(), 
    		  		 "package" : $("#package").val(),
    		  		 "signType" : "MD5", 
    		  		 "paySign" : $("#sign").val() 
    	   			  },function(res){
    	   				  
    	   				if (res.err_msg == "get_brand_wcpay_request:ok") { 
    					} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
    					}
    				})
      			 
      		 } catch (e) {
      			 alert(e);
      		 }
    	}
           
      	$(document).ready(function() {
      		if (typeof(WeixinJSBridge) == "undefined"){
               if( document.addEventListener ){
                   document.addEventListener('WeixinJSBridgeReady', callpay, false);
               }else if (document.attachEvent){
                   document.attachEvent('WeixinJSBridgeReady', callpay); 
                   document.attachEvent('onWeixinJSBridgeReady', callpay);
               }
            }else{
            	callpay();
            }
      	});
    
    

    微信支付(H5):
    重定向到支付平台,完成支付后,同步回调合作平台。

    快钱支付:
    重定向到支付平台,可选择银行卡,或者信用卡支付,可设置信用卡不可支付参数。
    完成支付后,同步回调合作平台。

    通联微信集合支付,返回payinfo参数,直接作为微信内嵌函数参数如:

    WeixinJSBridge.invoke('getBrandWCPayRequest',payinfo,function(res){
    	   				if (res.err_msg == "get_brand_wcpay_request:ok") { 
    					} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
    					} else {
    					}
    				})
    
    
    

    优化支付回调接口,可以使用AOP,在回调方法上增加回调日志(消息队列日志的数据库存储)。

  • 相关阅读:
    js replace替换 忽略大小写问题
    Spring security实现国际化问题
    Mac 的mysql5.7没有配置文件,如何解决only_full_group_by 问题
    java设计模式学习
    synchronized的锁问题
    理解java的三种代理模式
    [acm]HDOJ 2059 龟兔赛跑
    [acm]HDOJ 2673 shǎ崽 OrOrOrOrz
    [acm]HDOJ 1200 To and Fro
    [acm]HDOJ 2064 汉诺塔III
  • 原文地址:https://www.cnblogs.com/stubborn-dude/p/14166859.html
Copyright © 2011-2022 走看看