【微信支付宝支付代码篇】解决微信中支付宝无法使用的问题

时间:2016-09-26 来源:本站 浏览:

原理就是在在支付页面判断当前是不是微信浏览器,如果是就弹出一个提示层,让用户在其他浏览器支付,如果不是则直接进行支付。

判断微信浏览器代码:

//微信浏览器不进行支付  
 if (!Regex.IsMatch(agent, "MicroMessenger", RegexOptions.IgnoreCase)){  
   if (!IsPostBack & !string.IsNullOrEmpty(Request["orderId"]) & !string.IsNullOrEmpty(Request["orderMoney"])){  
  PayUtil.Pay(Request["orderId"], HttpUtility.UrlEncode("订单支付"), Request["orderMoney"], string.Format("http://{0}/Members/Order.aspx", StringHelper.domain), "", "0");  
  }  


下面是提示层代码:


 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <meta http-equiv="Content-Type" content="textml; charset=UTF-8">  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1">  
    <script src="../Js/jquery-1.9.1.min.js" type="text/javascript"></script>  
    <title>支付宝支付</title>  
    <style type="text/css">  
        *{margin:0; padding:0;}  
        img{max-width: 100%; height: auto;}  
        .test{height: 600px; max-width: 600px; font-size: 40px; margin-top:250px;}  
    </style>  
    <script type="text/javascript">   
        function is_weixin() {  
            var ua = navigator.userAgent.toLowerCase();  
            if (ua.match(/MicroMessenger/i) == "micromessenger") {  
                return true;  
            } else {  
                return false;  
            }  
        }  
        var isWeixin = is_weixin();  
        var winHeight = typeof window.innerHeight != 'undefined' ? window.innerHeight : document.documentElement.clientHeight;  
        console.log(winHeight);  
        function loadHtml() {  
            var div = document.createElement('div');  
            div.id = 'weixin-tip';  
            div.innerHTML = '<p><img src="/Imagesve_weixin.png" alt="微信打开"/></p>';  
            document.body.appendChild(div);  
        }  
  
        function loadStyleText(cssText) {  
            var style = document.createElement('style');  
            style.rel = 'stylesheet';  
            style.type = 'text/css';  
            try {  
                style.appendChild(document.createTextNode(cssText));  
            } catch (e) {  
                style.styleSheet.cssText = cssText; //ie9以下  
            }  
            var head = document.getElementsByTagName("head")[0]; //head标签之间加上style样式  
            head.appendChild(style);  
        }  
  
        function ShowWindow() {  
            var cssText = "#weixin-tip{position: fixed; left:0; top:0; background: rgba(0,0,0,0.8); filter:alpha(opacity=80); width: 100%; height:100%; z-index: 100;} #weixin-tip p{text-align: center; margin-top: 10%; padding:0 5%;}";  
            if (isWeixin) {  
                loadHtml();  
                loadStyleText(cssText);  
            } else {  
                $(".test").hide();  
            }  
        }  
  
        $(function () {  
            ShowWindow();  
        })  
    </script>  
</head>  
<body>  
    <form id="form1" runat="server">  
        <div class="test">  
            由于支付宝不能直接在微信中进行支付,请按照提示信息进行支付!  
        </div>  
    </form>  
</body>  
<html>