微信开发、微信支付之获取openID(PHP版本)
获取openID 步骤:
第一步请求微信服务器获取code
第二部 代上code 去请求微信服务器获取openID
注意:具体秘钥需要自己填写真实的秘钥,在微信中打开测试!
index.php 文件代码
<?php session_start(); include './Base.php'; class WeiXinPay extends Base { /* * 获取用户openID 当前登录微信用户的openID * */ public function __construct() { } } $obi = new WeiXinPay(); $obi->getOpenId();
base.php 文件代码
<?php header("Content-type: text/html; charset=utf-8"); /** * Created by PhpStorm. * User: lsh * Date: 2099/3/25 * Time: 16:08 */ class Base { //商户id const KEY ='kkkkksdio87923'; //获取code 的微信服务器地址 const CODEURL = "https://open.weixin.qq.com/connect/oauth2/authorize?"; //你自己的APPID const APPID = 'ssdfqwxx'; //获取openid 的微信服务器地址 const OPENIDURL = 'https://api.weixin.qq.com/sns/oauth2/access_token?'; //开发者秘钥 const SECRET = 'b8sdjfi28379923834'; //支付秘钥 //获取openid public function getOpenId() { //如果已经获取到用户的openId就存储在session中 if(isset($_SESSION['openid'])) { return $_SESSION['openid']; } else { //1.用户访问微信服务器地址 先获取到微信get方式传递过来的code //2.根据code获取到openID if(! isset($_GET['code'])) { //没有获取到微信返回来的code ,让用户再次访问微信服务器地址 //redirect_uri 解释 //跳转地址:你发起请求微信服务器获取code , //微信服务器返回来给你的code的接收地址(通常就是发起支付的页面地址) //组装跳转地址 $redirect_uri = self::CODEURL .'appid='.self::APPID.'&redirect_uri='.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'&response_type=code&scope='.self::SCOPE.'&state=STATE#wechat_redirect'; // echo $redirect_uri; //跳转 让用过去获取code header("location:{$redirect_uri}"); } else { //调用接口获取openId $openidurl = self::OPENIDURL.'appid='.self::APPID.'&secret='.self::SECRET.'&code='.$_GET['code'].'&grant_type=authorization_code'; //请求获取用户的openID $data = file_get_contents($openidurl); $arr = json_decode($data,true); //获取到的openid保存到session 中 $_SESSION['openid'] = $arr['openid']; return $_SESSION; } } } }
传播知识,分享快乐!
作者:IT_BULL
出处:http://www.cnblogs.com/itBulls/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
博客园-博客园。