• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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>

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net跨页面传值(一)发布时间:2022-07-10
下一篇:
JQuery&amp;ASP.NET结合使用文章推荐发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap