精华内容
下载资源
问答
  • PHP获取小程序的openid(附小程序与php完整代码) 1.在微信小程序开发者平台,配置服务器域名 这里配置的是https的,需要先在服务器配置ssl证书,我使用的是阿里云的证书,在阿里云的文档里面有详细步骤。 2....

    PHP获取小程序的openid(附小程序与php完整代码)

    1.在微信小程序开发者平台,配置服务器域名

    这里写图片描述
    这里配置的是https的,需要先在服务器配置ssl证书,我使用的是阿里云的证书,在阿里云的文档里面有详细步骤。

    2.在小程序的app.js中请求接口

    微信官方文档地址 https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject

        // 登录
        wx.login({
          success: res => {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
            wx.request({
              url: "https://配置的合法域名/test.php",
              data: {
                code: res.code
              },
              method: 'POST',
              header: { 'content-type': 'application/x-www-form-urlencoded' },
              success: res=> {
                that.globalData.openid = res.data.openid;
                console.log(that.globalData.openid)
              }
            })
          }
        })
    
        globalData: {
            userInfo: null,
            openid: 0
      }
    
    3.PHP请求接口获取openid
    class testController extends Yaf_Controller_Abstract
    {
        protected $appid = "你的appid";
    
        protected $secret = "你的secret";
    
        protected $grant_type = "authorization_code";
    
    
        //获取用户openid
        public function getOpenidAction()
        {
            $request = $this->getRequest();
    
            //获取微信小程序传过来的code
            $js_code = $request->getPost("code");
    
            $curl = curl_init();
    
            //使用curl_setopt() 设置要获得url地址
             $url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $this->appid . '&secret=' . $this->secret . '&js_code=' . $js_code . '&grant_type=' . $this->grant_type;
             curl_setopt($curl, CURLOPT_URL, $url);
    
             //设置是否输出header
             curl_setopt($curl, CURLOPT_HEADER, false);
    
             //设置是否输出结果
             curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
             //设置是否检查服务器端的证书
             curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
             //使用curl_exec()将curl返回的结果转换成正常数据并保存到一个变量中
             $data = curl_exec($curl);
    
             //关闭会话
             curl_close($curl);
    
             print_r($data);
        }
      }

    以上就是小程序与php获取openid的全部代码,希望能够帮助到大家。写的不好的地方还请见谅。
    这里写图片描述

    展开全文
  • // 发送 res.code 到后台换取 openId, sessionKey, unionId if (res.code) { wx.request({ url: ‘http://localhost:8080/cis’, data: { code: res.code }, header: { ‘content-type’: ‘application/x-...

    这个非常简单苦于网上资料杂乱,弄了半天

    wx.login({
    success: res => {
    // 发送 res.code 到后台换取 openId, sessionKey, unionId
    if (res.code) {
    wx.request({
    url: ‘http://localhost:8080/cis’,
    data: {
    code: res.code
    },
    header: {
    ‘content-type’: ‘application/x-www-form-urlencoded’
    },
    success(res) {
    console.log(“openid:” + res.data.openid);
    if (res.data.openid != “” || res.data.openid != null) {
    // 登录成功
    wx.setStorageSync(“openid”, res.data.openid);//将用户id保存到缓存中
    wx.setStorageSync(“session_key”, res.data.session_key);//将session_key保存到缓存中
    } else {
    // 登录失败
    // TODO 跳转到错误页面,要求用户重试

                return false;
              }
            }
          })
        } else {
          console.log('获取用户登录态失败!' + res.errMsg)
        }
      }
    })
    

    在这里插入图片描述

    code是从前端传过来的 每次不一样

    然后是后端
    先导两个依赖 一定要导进来

        <!--https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.49</version>
        </dependency>
    
        <!--http requset-->
        <dependency>
            <groupId>com.github.kevinsawicki</groupId>
            <artifactId>http-request</artifactId>
            <version>6.0</version>
        </dependency>
    

    package cn.com.doone.sc.tx.cloud.dyb.system.controller.openId;

    import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.RequestMessage;
    import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.ResponseMessage;
    import cn.com.doone.sc.tx.cloud.dyb.system.bean.po.code.CodePo;
    import cn.com.doone.sc.tx.cloud.dyb.system.service.openId.WeChatService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RestController;

    /**

    • @Auther: liufei

    • @Date: 2020/5/9 14:40

    • @Description:
      */
      @RestController
      public class WeChatController {

      @Autowired
      private WeChatService weChatService;

      @PostMapping("/getOpenid")
      public ResponseMessage getOpenid(@RequestBody RequestMessage requestMessage){
      String code = requestMessage.getBody().getCode();
      return weChatService.getOpenid(requestMessage);
      }
      }

    package cn.com.doone.sc.tx.cloud.dyb.system.service.openId;

    import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.RequestMessage;
    import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.ResponseMessage;
    import cn.com.doone.sc.tx.cloud.dyb.system.bean.po.code.CodePo;
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import com.github.kevinsawicki.http.HttpRequest;
    import org.springframework.stereotype.Service;

    import java.util.HashMap;
    import java.util.Map;

    /**

    • @Auther: liufei

    • @Date: 2020/5/9 15:14

    • @Description:
      /
      @Service
      public class WeChatService {
      private final static String APPID=“wx76de200fe69b5878”;
      /
      private final static String APPID=“wxd7878dbde55f0312”;/
      private final static String SECRET_KEY=“9a21fd33bc58c12deb919371e6a69596”;
      /
      private final static String SECRET_KEY=“33c0aeeb77f5467a2a8d8e628ca697c7”;*/

      public ResponseMessage getOpenid(RequestMessage requestMessage) {
      Map<String, String> data = new HashMap<String, String>();
      data.put(“appid”, APPID);
      data.put(“secret”, SECRET_KEY);
      data.put(“js_code”, requestMessage.getBody().getCode());
      data.put(“grant_type”, “authorization_code”);
      String response = HttpRequest.get(“https://api.weixin.qq.com/sns/jscode2session”).form(data).body();
      System.out.println("Response was: " + response);
      JSONObject obj= JSON.parseObject(response);//将json字符串转换为json对
      return new ResponseMessage().success(obj);
      }
      }
      在这里插入图片描述
      最后就可以生成对应的sessionId 和openid了
      而且每次code不一样 ,可是openid都会一样 很神奇 以后研究一下

    展开全文
  • 第一篇 小程序登录获取小程序的openId和unionId。 最近公司做了一个微信的小程序应用,做了一些技术研究也踩了不少坑,不过最终结果不错小程序顺利上线。 在这里做一个开发笔记,主要记录以下几个方面,分别用四...

    第一篇 小程序登录获取,小程序的openId和unionId。

    最近公司做了一个微信的小程序应用,做了一些技术研究也踩了不少坑,不过最终结果不错小程序顺利上线。

    在这里做一个开发笔记,主要记录以下几个方面,分别用四篇文章来记录:

    1.小程序登录获取,小程序的openId和unionId。

    2.获取并解密小程序的加密信息包括用户和手机信息。

    3.用小程序给用户推送服务消息。

    4.给绑定小程序而且又关注微信公众号的用户推送公众号消息。

    1.首先从最基础开始介绍一下小程序账号的登录

        1.1 微信小程序注册前准备

    https://developers.weixin.qq.com/miniprogram/introduction/index.html

        1.2 开发前准备

    https://developers.weixin.qq.com/miniprogram/dev/index.html

        1.3 小程序开发工具下载

    https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html?t=18101520

        1.4 小程序开发API文档

    https://developers.weixin.qq.com/miniprogram/dev/api/network/download/wx.downloadFile.html

    2.微信公众平台登录https://mp.weixin.qq.com/

    3.登录后配置服务器,在开发设置页面查看AppID和AppSecret,配置服务器域名

    4.完成以上设置后AppID和AppSecret保存在java服务端,接下来我们看一下小程序和java后台的交互过程

    首先是小程序端调用wx.login()发起登录,将code也就是票据传递给我们自己的java后台,

    wx.login({
            success: function (res) {
              console.log(res);
              if (res.code) {
                wx.request({
                  url: "https://www.test.com/miniprogramLogin",
                  data: {
                    head: {},
                    body: {
                      code: res.code
                    }
                  },
                  method: "POST",
                  header: {
                    'content-type': 'application/json',
                  },
                  success: function (res) {
                    console.log(res);
                  },
                  fail: function (error) {
                    console.log(error);
                  }
                })
              }
            },
            fail: function (error) {
              console.log(error);
            }
    })

    接下来在java后台我们用保存好的AppID,AppSecret和传递过来的code,调用 code2Session 接口获取openId,unionId和session_key

    public class MiniprogramLoginInterfaceAction extends BaseInterfaceAction {
    	private static final Logger logger = LoggerFactory.getLogger(MiniprogramLoginInterfaceAction.class);
    
    	@Override
    	public String execute() throws Exception {
    		logger.debug("小程序登录后获取用户在小程序里的openid和unionId-----开始");
    		// 获取前端传递的数据
    		HttpServletRequest request = this.getRequest();
    		String code = request.getParameter("code");
    		//AppID,AppSecret和传递过来的code,调用 code2Session 接口获取openId,unionId和session_key
    		MiniprogramResult miniprogramResult = MiniprogramUtil.getOpenId(code);
    		if (miniprogramResult != null) {
    			// 获取用户的唯一标识openid
    			String openid = miniprogramResult.getOpenid();
    			// 获取用户的唯一标识unionid
    			 String unionid = miniprogramResult.getUnionid();
    			// 获取会话秘钥
    			 String session_key = miniprogramResult.getSession_key();
    			// 下面就可以写自己的业务代码了
    
    		}
    		logger.debug("小程序登录后获取用户在小程序里的openid和unionId-----结束返回数据:" + miniprogramResult);
    		return null;
    	}
    
    }

    MiniprogramUtil.getOpenId(code)方法 

    	/**
    	 * 微信登录成功后获取用户的openId和unionId
    	 * <p/>
    	 * Date 2018年9月29日 下午5:03:15
    	 * <p/>
    	 * 
    	 * @author 网行天下
    	 */
    	public static MiniprogramResult getOpenId(String code) {
    		logger.info("获取小程序OpenId和SessionKey数据开始code:" + code);
    		MiniprogramResult miniprogramResult = null;
    		String sessionData = "";
    		String appid = "xxx";
    		String secret = "xxx";
    		String authorizationCodeUrl= "https://api.weixin.qq.com/sns/jscode2session?appid=%s&amp;secret=%s&amp;js_code=%s&amp;grant_type=authorization_code";
    		// 微信的接口
    		String url = String.format(authorizationCodeUrl, appid,secret, code);
    		logger.debug(url);
    		RestTemplate restTemplate = new RestTemplate();
    		// 进行网络请求,访问url接口
    		ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, String.class);
    		// 根据返回值进行后续操作
    		if (responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK) {
    			sessionData = responseEntity.getBody();
    			// 此处为返回json数据转换成javabean,可以自己查阅其他材料写
    			miniprogramResult = FastJsonUtils.getJavaBean(sessionData, MiniprogramResult.class);
    			if (miniprogramResult != null) {
    				return miniprogramResult;
    			}
    		}
    		logger.info("获取小程序OpenId和SessionKey数据结束result:" + miniprogramResult);
    		return miniprogramResult;
    	}

    MiniprogramResult   JavaBean

    import java.io.Serializable;
    
    public class MiniprogramResult implements Serializable {
    
    	private static final long serialVersionUID = 1L;
    
    	/** 获取到openid */
    	public String openid;
    	/** 获取到unionid */
    	public String unionid;
    	/** 获取到session_key */
    	public String session_key;
    	/** 获取到的凭证 */
    	public String access_token;
    	/** 凭证有效时间,单位:秒 */
    	public Integer expires_in;
    	/** 错误码 */
    	public Integer errcode;
    	/** 错误信息 */
    	public String errmsg;
    
        // get set 省略
    }

    然后openId,unionId取得后需要保存到数据库,session_key取到后保存在服务端缓存中。

    需要注意

    a.会话密钥 session_key 是对用户数据进行 加密签名 的密钥。session_key的有效期不固定,微信通过用户行为来维护
    b.临时登录凭证 code 只能使用一次

    展开全文
  • 先是小程序代码: 下面Java代码,就几行代码。 只需要把这个类放到服务器端,小程序去链接这个接口就可以得到OpenId了,后期还有使用OpenId获取Uid等代码。喜欢可以关注下

    先是小程序端的代码:


    下面的Java的代码,就几行代码。


    只需要把这个类放到服务器端,小程序去链接这个接口就可以得到OpenId了,后期还有使用OpenId获取Uid等代码。喜欢的可以关注下

    展开全文
  • 借助小程序云开发获取小程序用户openid

    万次阅读 多人点赞 2018-10-11 17:29:11
    openid作为小程序用户的唯一标示,就相当于用户在微信里的身份证一样,我们做小程序开发时,获取用户的openid是很重要的。我们之前获取用户的openid,如下图官方文档说明,是通过该wx.login先获取临时凭证,然后再用...
  • 小程序用户openid是用户在小程序中的唯一标识符, ...观看《小程序获取用户的openid》视频, 详细了解代码编写过程。 小程序wx.login获取code 一、 小程序openid作用 在小程序开发过程中, 一些关键的
  • 获取小程序用户openid(nodejs后端) 需求分析: openID和sessionKey作为小程序用户唯一凭证,在微信支付和其他接口等都需要使用,还是很重要。调用wx.login()获取登录凭证,利用code在后台换取openID和...
  • 上一节教大家如何在本地...通过上图我们可以看到我们成功的获取到了小程序的openid,而这里获取openid是借助php后台获取的。 我们的php核心代码,只有下面10行 下面就来讲讲具体的实现步骤。 一,首先要搭建一个可...
  • 为什么要获取小程序的 openid 在开发微信小程序的过程中,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。那么这个用户身份标识就是 openid。 小程序获取 ...
  • 小程序获取openid 小程序可以通过微信官方提供登录能力方便地获取微信提供用户身份标识,快速建立小程序用户体系。 wx.login(Object object) 调用接口获取登录凭证(code)。通过凭证进而换取用户登录...
  • 小程序获取openid

    千次阅读 2018-10-16 18:46:57
    1,小程序的openid相当重要,它是用户的唯一标识id,牵扯的支付,登录,授权等!你可以理解为小程序的账号,小程序是获取不到你的微信号的,这个属于私密信息!只能获取用户的昵称,头像,openid,session_key等 ...
  • 前言 在开发微信小程序的时候,获取用户openid是再常见不过的事情了,openid是用户在指定小程序X小...获取openid过程: 获取openid首先需要调用小程序的login方法获取小程序的登录凭证code,然后使用code向微信换取...
  • 最近在折腾小程序的node后台,还是处于入门阶段,写一下也让自己深刻记录一下如何获取小程序的openid和uid。 首先需要在在小程序后台获取小程序的appId和AppSecret,然后在小程序获取session_key所需的code。 小程序...
  • 为什么要获取小程序的 openid 在开发微信小程序的过程中,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。那么这个用户身份标识就是 openid。 小程序获取 ...
  • 小程序获取微信用户的openid 小程序获取微信用户的openid //index.js //获取应用实例 const app = getApp() Page({ globalData: { appid: '11121221a89e0...
  • 微信小程序获取openid

    万次阅读 2017-10-20 09:15:34
    微信小程序openid,session_key等信息的获取,以及遇到问题
  • 小程序获取openid,看之前官方文档写不清楚,自己摸索后才发现很简单,当修改secret后记得在文件里更新密码和qppId,这是个坑
  • 微信小程序获取openId

    2019-11-01 18:58:21
    微信小程序现在成为了增长模式的宠儿,小程序的便利想必看这篇博客的各位都已经了解到了,本篇呢主要介绍小程序里面获取openId的方法。 其中涉及关键词: openId:微信小程序用户唯一标示。 openUrl:微信为指定的...
  • 小程序获取openid时报40125

    千次阅读 2019-04-04 15:28:42
    小程序获取openid时报40125 解决办法 重置小程序的AppSecret
  • 想到刚创建微信小程序的时候好像首页有一个点击获取openid,想试试看能不能用那个,结果成功了。可能这种方法有弊端,但作为新手的我还不知道,如有指教,还请不吝! // 调用云函数 wx.cloud.callFunction({ ...
  • Java获取小程序openId

    千次阅读 2017-07-19 10:45:58
    最近公司要开发小程序,由于业务需要,需要在用户注册时获取用户的openId作为userId进行注册一、获取code将code作为参数传递过来//如果有code,说明是微信小程序,根据code获取openId //classify用于标识是哪个...
  • 获取微信小程序openid获取微信小程序的openid代码生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,712
精华内容 684
关键字:

获取小程序的openid