微信浏览器内获取微信 发票抬头,发票地址接口

微信浏览器内获取微信 发票抬头,发票地址接口

第一步: 验证服务器可用性

1: 进入 开发-基本配置-根据要求修改服务器配置
在这里插入图片描述

2: 在上图中编辑的服务器url对应的本网站文件中编写验证代码, 用于验证消息的确来自微信服务器

    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
	
    $token = '与服务器配置中的token一致';
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
        echo $_GET['echostr'];
        return true;
    }else{
        return false;
    }

3, 编辑保存服务器配置, 保存前确认第二部的代码已经上传至网站并可访问, 当点击保存的同时, 微信向第1步中编写的url发送验证, 验证url有效性成功后即接入生效,成为开发者。

第二步: 获取access_token
进入“公众号设置”的“功能设置”里填写“ip白名单”, 设置白名单后才可以获取access_token
使用get方式访问 链接 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=服务号的appid&secret=服务号的secret 获取access_token
正确返回示例:
{“access_token”:“ACCESS_TOKEN”,“expires_in”:7200}
access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

如果遇到问题请访问微信开发文档链接
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 查看错误码对应具体的错误

**使用JSSDK **
1, 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
2, 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js
3:在需要调用JS接口的页面 通过config接口注入权限验证配置

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: ['chooseInvoiceTitle','openAddress'] // 必填,需要使用的JS接口列表
});

//检测接口是否可用, 调试时可使用此方法, 上线后可注释
wx.checkJsApi({
  jsApiList: ['chooseInvoiceTitle','openAddress'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
  success: function(res) {
    //alert(res);
    //alert('检测成功');
  // 以键值对的形式返回,可用的api值true,不可用为false
  // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
  },
  error: function(res){
    //alert(res);
    //alert('检测失败');
  }
});
nonceStr说明:
生
成签名时的随机字符串
signature说明:
(1)首先获取jsapi_ticket,有效期7200秒,使用之前获取的access_token GET方式获取jsapi_ticket
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=之前获取的access_token&type=jsapi
(2), 获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。
 function string_rand()
 {
     $codeSet = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
     for ($i = 0; $i<16; $i++) {
         $codes[$i] = $codeSet[mt_rand(0, strlen($codeSet)-1)];
     }
     $nonceStr = implode($codes);
     return $nonceStr;
 }
 
$tmpArr = array(
 'noncestr' => '随机生成一个字符串',//生成示例见 function string_rand
 'timestamp' => '当前时间戳',//time()
 'jsapi_ticket' => '以上获取的jsapi_ticket',
 'url' => '使用分享页面的url',//动态获取 $_SERVER['HTTP_REFERER'];
 );
 ksort($tmpArr, SORT_STRING);
 $string1 = http_build_query( $tmpArr );
 $string1 = urldecode( $string1 );
 $signature = sha1( $string1 );
//注意wx.config的时间戳需与生成签名的时间戳一致

4, 在需要调用JS接口的页面编辑分享接口

//出发获取微信发票抬头的按钮
$('.wxinvoice').click(function(){
    // 这是函数声明,判断微信客户端
    function isWeixinBrowser() {
        var agent = navigator.userAgent.toLowerCase();
        if (agent.match(/MicroMessenger/i) == "micromessenger") {
            wx.invoke('chooseInvoiceTitle', {
              // 这里要传入参数
              //"scene":"1"
            }, function (res) {
              var info = JSON.parse(JSON.stringify(res)).choose_invoice_title_info;
              info = JSON.parse(JSON.parse(JSON.stringify(info)));
              
          	  alert(info);
              alert(info.title);
              alert(info.taxNumber);
              alert(info.companyAddress);
              alert(info.telephone);
              alert(info.bankName);
              alert(info.bankAccount);
            })

        } else {
            // 下面不再执行
            alert("请用微信打开才能使用");
            return false;
        }
    }
    isWeixinBrowser();
});
$('.wxaddress').click(function(){
    // 这是函数声明,判断微信客户端
    function isWeixinBrowser() {
        var agent = navigator.userAgent.toLowerCase();
        if (agent.match(/MicroMessenger/i) == "micromessenger") {
            wx.openAddress({
              success: function (res) {
                var username = res.userName; // 收货人姓名
                var code = res.postalCode; // 邮编
                var province = res.provinceName; // 国标收货地址第一级地址(省)
                var city = res.cityName; // 国标收货地址第二级地址(市)
                var country = res.countryName; // 国标收货地址第三级地址(国家)
                var address = res.detailInfo; // 详细收货地址信息
                //var nationalCode = res.nationalCode; // 收货地址国家码
                var mobile = res.telNumber; // 收货人手机号码
              }
            });

        } else {
            // 下面不再执行
            alert("请用微信打开才能使用");
            return false;
        }
    }
    isWeixinBrowser();
});
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值