首页>新闻资讯>微信扫码关注公共号生成上下级关系,扫码之后的流程

微信扫码关注公共号生成上下级关系,扫码之后的流程

基本思路:

1、扫描带参数二维码时,微信会返回二维码带的参数,和扫码的微信的信息,

2、在代码中接收参数,

3,处理业务逻辑,基本流程;

1、在哪里接收微信返回的参数?首先要在微信公共号的基本配置里共号的基本配置里的服务器URL,这个 URL指向的文件就是微信返回参数的地方

2、怎么接收返回的数据? $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  //微信返回的数据 ,

想要查看具体内容可以把它写入一个文件:file_put_contents(dirname(__FILE__).'/ccc.txt', $postStr);这样就可以在ccc.txt 文件里查看到下边的xml内容

具体内容如下:

<xml><ToUserName><![CDATA[gh_76693edca3e7]]></ToUserName>

<FromUserName><![CDATA[o8mVJ1ZQ7KlUhYeD2Z2sxdwuf-K4]]></FromUserName>

<CreateTime>1516207510</CreateTime>

<MsgType><![CDATA[event]]></MsgType>

<Event><![CDATA[subscribe]]></Event>

<EventKey><![CDATA[qrscene_10]]></EventKey>

<Ticket><![CDATA[gQE08TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyNWZUQ3NuT0JkOWwxMDAwME0wM1YAAgTPyl5aAwQAAAAA]]></Ticket>

</xml>


其中包含了扫码者的openid和参数值

openid;  <FromUserName><![CDATA[o8mVJ1ZQ7KlUhYeD2Z2sxdwuf-K4]]></FromUserName>

参数值;       <EventKey><![CDATA[qrscene_10]]></EventKey>

怎么取出这两个值呢?

创建解析xml的对象

 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

然后去获取想要的值

$openid = (string)$postObj->FromUserName;  值为o8mVJ1ZQ7KlUhYeD2Z2sxdwuf-K4

     $parent_id = trim((string)$postObj->EventKey);值为qrscene_10

这时再用字符串拆分获取到最后的parent_id = 10

注意事项:

这里是服务返回的数据,无法把parent_id = 10 保存在session 里,可以写入数据库,进行保存基本思路:

1、扫描带参数二维码时,微信会返回二维码带的参数,和扫码的微信的信息,

2、在代码中接收参数,

3,处理业务逻辑,

基本流程;

1、在哪里接收微信返回的参数?

首先要在微信公共号的基本配置里共号的基本配置里的服务器URL,这个 URL指向的文件就是微信返回参数的地方


具体内容如下:

<xml><ToUserName><![CDATA[gh_76693edca3e7]]></ToUserName>

<FromUserName><![CDATA[o8mVJ1ZQ7KlUhYeD2Z2sxdwuf-K4]]></FromUserName>

<CreateTime>1516207510</CreateTime>

<MsgType><![CDATA[event]]></MsgType>

<Event><![CDATA[subscribe]]></Event>

<EventKey><![CDATA[qrscene_10]]></EventKey>

<Ticket><![CDATA[gQE08TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyNWZUQ3NuT0JkOWwxMDAwME0wM1YAAgTPyl5aAwQAAAAA]]></Ticket>

</xml>


其中包含了扫码者的openid和参数值

openid;  <FromUserName><![CDATA[o8mVJ1ZQ7KlUhYeD2Z2sxdwuf-K4]]></FromUserName>

参数值;       <EventKey><![CDATA[qrscene_10]]></EventKey>

怎么取出这两个值呢?

创建解析xml的对象


$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

然后去获取想要的值

$openid = (string)$postObj->FromUserName;  值为o8mVJ1ZQ7KlUhYeD2Z2sxdwuf-K4

$parent_id = trim((string)$postObj->EventKey);值为qrscene_10

这时再用字符串拆分获取到最后的parent_id = 10

注意事项:

这里是服务返回的数据,无法把parent_id = 10 保存在session 里,可以写入数据库,进行保存