码迷,mamicode.com
首页 > 微信 > 详细

asp.net微信支付发起页面jsapi.aspx

时间:2015-04-13 18:30:39      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

jsapi.aspx

后台核心代码

 //创建支付应答对象
            RequestHandler packageReqHandler = new RequestHandler(Context);
            //初始化
            packageReqHandler.init();
            packageReqHandler.setKey(TenpayUtil.key);

            //设置package订单参数
            packageReqHandler.setParameter("partner", TenpayUtil.partner);          //商户号
            packageReqHandler.setParameter("bank_type", "WX");
            packageReqHandler.setParameter("fee_type", "1");                    //币种,1人民币
            packageReqHandler.setParameter("input_charset", "UTF-8");
            packageReqHandler.setParameter("out_trade_no", model.order_id);        //商家订单号
            packageReqHandler.setParameter("total_fee", (model.order_money * 100).ToString("f0"));                    //商品金额,以分为单位(money * 100).ToString()
            packageReqHandler.setParameter("notify_url", TenpayUtil.tenpay_notify);            //接收财付通通知的URL            
            packageReqHandler.setParameter("body", model.description.Replace(" ", ""));                        //商品描述    

            packageReqHandler.setParameter("spbill_create_ip", Page.Request.UserHostAddress);   //用户的公网ip,不是商户服务器IP

            //获取package包
            packageValue = packageReqHandler.getRequestURL();

            //调起微信支付签名
            timeStamp = TenpayUtil.getTimestamp();
            nonceStr = TenpayUtil.getNoncestr();

            //设置支付参数
            RequestHandler paySignReqHandler = new RequestHandler(Context);
            paySignReqHandler.setParameter("appid", appId);
            paySignReqHandler.setParameter("appkey", TenpayUtil.appkey);
            paySignReqHandler.setParameter("noncestr", nonceStr);
            paySignReqHandler.setParameter("timestamp", timeStamp);
            paySignReqHandler.setParameter("package", packageValue);
            paySign = paySignReqHandler.createSHA1Sign();


            string sign = PayOrderCommon.OrderHelper.CreateSign(payNo);

            successUrl = string.Format("{0}?sign={1}&payNo={2}", "payresult.ashx", sign, payNo);

 

前台页面

<script language="javascript" type="text/javascript">
        function auto_remove(img) {
            div = img.parentNode.parentNode; div.parentNode.removeChild(div);
            img.onerror = "";
            return true;
        }

        function changefont(fontsize) {
            if (fontsize < 1 || fontsize > 4) return;
            $(‘#content‘).removeClass().addClass(‘fontSize‘ + fontsize);
        }

        // 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。
        document.addEventListener(‘WeixinJSBridgeReady‘, function onBridgeReady() {
            //公众号支付
            WeixinJSBridge.invoke(‘getBrandWCPayRequest‘, {
                "appId": "<%= appId %>", //公众号名称,由商户传入
                "timeStamp": "<%= timeStamp %>", //时间戳
                "nonceStr": "<%= nonceStr %>", //随机串
                "package": "<%= packageValue %>", //扩展包
                "signType": "SHA1", //微信签名方式:1.sha1
                "paySign": "<%= paySign %>" //微信签名
            }, function (res) {
                if (res.err_msg == "get_brand_wcpay_request:ok") {
                    location.href = "<%=successUrl %>";
                }
                // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
                //因此微信团队建议,当收到ok返回时,向商户后台询问是否收到交易成功的通知,若收到通知,前端展示交易成功的界面;若此时未收到通知,商户后台主动调用查询订单接口,查询订单的当前状态,并反馈给前端展示相应的界面。
            });


            WeixinJSBridge.log(‘yo~ ready.‘);

        }, false)
    </script>

 

招运堂-古姓姓名打分

 

asp.net微信支付发起页面jsapi.aspx

标签:

原文地址:http://www.cnblogs.com/yonsy/p/4422414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!