需求,用户在小程序内识别公众号二维码。打卡公众号点击签到小程序内赠送对应金币。
首先需要在配置公众号基本配置。
对应后端代码
public function gzh()
{
//获取参数
$get_data = $this->request->request();
$signature = $get_data["signature"];
$timestamp = $get_data["timestamp"];
$nonce = $get_data["nonce"];
$token = '你的token';
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpstr = implode($tmpArr);
//加密信息
$tmpstr = sha1($tmpstr);
//比较加密信息返回结果
if(isset($get_data['echostr'])&&$tmpstr == $signature){
echo $get_data['echostr'];exit;
}
}
自定义公众号菜单
官方文档
设置好后点击签到 后端代码会收到微信请求
报文中包含用户的opneid 需要调用微信接口使用openid 获取unionid
根据unionid 去数据库中查询用户后 做后续操作
最终返回信息给微信
返回类型是XML
参考代码
$xml = "<xml><ToUserName><![CDATA[用户openid]]></ToUserName><FromUserName><![CDATA[公众号id]]></FromUserName>";//发送给谁(openid),来自谁(公众账号ID)
$xml.= "<CreateTime>" .time(). "</CreateTime>";//回复时间戳
$xml.= "<MsgType><![CDATA[text]]></MsgType>";//回复类型文本
$xml.= "<Content><![CDATA[回复内容]]></Content>";//回复内容
$xml.='</xml>';
return $xml;
公众号id使用的公众号的原始ID 需要 设置公众号的微信号后获取。