微信 收货地址共享

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <#include "/com/lovo/ec/m/global/ftl/global_all.ftl" /> 
    <script type="text/javascript" src="${staticHost}/m/js/common/zepto.min.js"></script>

    <script>
        function getappid() {
            return "wx29b5cd93f26b8f14"; //换成自已的appid
        }
        function getQueryString(name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
            var r = window.location.search.substr(1).match(reg);
            if (r != null) return unescape(r[2]); return null;
        }
        function getTimeStamp() {
            var timestamp = new Date().getTime();
            var timestampstring = timestamp.toString();//一定要转换字符串
            oldTimeStamp = timestampstring;
            return timestampstring;
        }

        //得到随机字符串
        function getNonceStr() {
            var $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
            var maxPos = $chars.length;
            var noceStr = "";
            for (i = 0; i < 32; i++) {
                noceStr += $chars.charAt(Math.floor(Math.random() * maxPos));
            }
            oldNonceStr = noceStr;
            return noceStr;
        }
        //获取CODE
        var getcodeobj = {
            appid: getappid(),
            redirect_uri: "",
            response_type: "code",
            scope: "snsapi_base",
            state: "1"
        };

        //拼接url传参字符串
        function perapara(objvalues, isencode) {
            var parastring = "";
            for (var key in objvalues) {
                isencode = isencode || false;
                if (isencode) {
                    parastring += (key + "=" + encodeURIComponent(objvalues[key]) + "&");
                }
                else {
                    parastring += (key + "=" + objvalues[key] + "&");
                }
            }
            parastring = parastring.substr(0, parastring.length - 1);
            return parastring;
        }
        //得到用户code
        function getcode() {
            var code = getQueryString("code");
            if (!code) {
                var getcodeparas = $.extend(getcodeobj, {
                    redirect_uri: window.location.href
                });
                window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?" + perapara(getcodeparas) + "#wechat_redirect";
            }
            else {
                return code;
            }
        }
        //得到用户accesstoken
        function getaccesstoken(code,oldTimeStamp,oldNonceStr,url1) {
            var url = "${ctx}/cart/getTockenByCode.php";
            $.ajax({
                type: "POST",  //默认是GET
                url: url,
                data: {"code":code,"timeStamp":oldTimeStamp,"nonceStr":oldNonceStr,"ftlUrl":url1},
                async: false,  //异步
                success: function (data) {
                    sign = data.addrSign;
                },
                error: function () {
                }
            });

        }
        function getSign(beforesingstring) {
            sign = CryptoJS.SHA1(beforesingstring).toString();
            return sign;
        }

        var signparasobj = {
            "accesstoken": "",
            "appid": getappid(),
            "noncestr": "",
            "timestamp": "",
            "url": ""
        };
    </script>
</head>
<body>
<div>
    <label>showerror</label>
    <textarea id="showerror"></textarea>
    <!--<div id="showerror"></div>-->
    <label>code</label><input type="text" id="txtcode" /><br />

    <textarea id="txtinfo"></textarea>
    <label>accesstoken</label><input type="text" id="txtaccesstoken" />
</div>

<div id="showtestresult"></div>
<label for="redhref">href测试</label> <input type="text" id="redhref" /><br />
<label for="redhref">加密前参数</label>  <input name="44" id="signpre" type="text" /><br />

<input name="44" id="thisurl" type="text" /><br />
<input name="33" id="thisurl2" type="text" /><br />
<input type="button" id="getaddress2" οnclick="editAddress()" value="得到地址方式2" /><br />
<input name="address1" id="address1" type="text" /><br />
<input name="address2" id="address2" type="text" /><br />
<input name="address3" id="address3" type="text" /><br />

<div id="divinfo"></div>
<div id="resvalues">aaaaaaaaS</div>
<script>
    var codestring = "";
    var access_tokenstring = "";
    var oldTimeStamp;//保存timestamp,提交用
    var oldNonceStr; //保存nonceStr,提交用
    var sign;
    var isaccget = false;
    var url;
    
    //绑定微信对象事件
    function checkWeixinJSBridge(){
	         if (typeof WeixinJSBridge == "undefined") { 
	                if (document.addEventListener) {
	                    document.addEventListener('WeixinJSBridgeReady', editAddress, false); 
	                } else if (document.attachEvent) {
	                    document.attachEvent('WeixinJSBridgeReady', editAddress);
	                    document.attachEvent('onWeixinJSBridgeReady', editAddress);
	                }
	         } else {
	         }
	 }
	     
     function editAddress() {
            alert(getappid());
            alert(sign.toString());
            alert(oldTimeStamp.toString());
            alert("随机常量"+oldNonceStr.toString());
            WeixinJSBridge.invoke('editAddress',
                    {
                        "appId": getappid(),
                        "scope": "jsapi_address",
                        "signType": "sha1",
                        "addrSign": sign.toString(),
                        "timeStamp": oldTimeStamp.toString(),
                        "nonceStr": oldNonceStr.toString()
                    },
                    function (res) {
                       alert(res.err_msg);
                    });
    }

    $(document).ready(
            function () {
                codestring = getcode();
                oldTimeStamp = getTimeStamp();
                oldNonceStr = getNonceStr();
                $("#txtcode").val(codestring);
                if(codestring){
                  $("#thisurl").val(window.location.href);
                   alert(codestring);
                   url = window.location.href;
                   getaccesstoken(codestring,oldTimeStamp,oldNonceStr,url);
                   checkWeixinJSBridge();
                }else{
                   alert("第一次 进页面,code为空");
                }
            });
            
   
</script>
</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值