《一》注册订阅号并完成基本配置

一、进入官网注册账号

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

二、开始注册《订阅号》

  • 按照以下步骤进行开发:

填写基本信息:

  • 这里写图片描述

激活账号 :

  • 这里写图片描述

选择注册的类型:

  • 这里写图片描述
  • -

完善个人信息:

  • 这里写图片描述

完善公众号信息 :

  • 这里写图片描述

三、配置基本信息

  • 修改基本配置。

  • 列表内容

  • 完善基本配置。此页面填写的 url 要让外网能访问到,否则验证不成功。如果你是本地开发没有线上服务器、url,你可以参考《使用 ngrok 让公网可以访问内网 》,然后你的本地服务器就可以当做线上服务器、ngrok 返回的 url 就可以做线上 url。

  • 这里写图片描述

然后在本地服务器要用如下代码验证,上面填写的 url 要能直接访问到此代码文件:

<?php
//define your token
define("TOKEN", "跟你上面定义的token要一致");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature() //配置时验证URL有效性
    {
        // you must define TOKEN by yourself
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }

        $signature = $_GET["signature"]; //微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
        $timestamp = $_GET["timestamp"]; //时间戳
        $nonce = $_GET["nonce"];  //随机数

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
        sort($tmpArr,SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

    public function responseMsg()
    {
        //5.6 之前:$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]
        //5.6 之后:$postStr = file_get_contents('php://input')
        $postStr = file_get_contents('php://input');

        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
             if(!empty( $keyword ))
            {
                if($keyword == "?" || $keyword == "?")
                {
                    $msgType = "text";
                    $contentStr = date("Y-m-d H:i:s",time());
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }else{
                    $msgType = "text";
                    $contentStr = "Welcome to wechat world!";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }
            }else{
                echo "Input something...";
            }
        }else{
            file_put_contents("./10.txt",'error');
            echo "";
            exit;
        }
    }
}
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现微信订阅页面主要是通过编写前端代码(HTML/CSS/JavaScript)以及使用微信提供的开发接口和框架。微信订阅页面的核心是使用微信JS-SDK来实现如图文消息、卡片消息等富媒体内容的展示和交互功能。以下是实现一个基本微信订阅页面的步骤: 1. 注册微信小程序账并获取AppID。 2. 在微信开发者工具中创建新的项目,并选择合适的模板或自定义项目结构。 3. 编写页面的前端代码: - HTML:构建页面的结构。 - CSS:定义页面的样式。 - JavaScript:编写页面的逻辑和数据处理。 4. 配置app.json文件,定义页面的窗口表现、网络超时时间、多tab等配置项。 5. 使用微信JS-SDK提供的接口,比如获取用户信息、分享信息、支付功能等。 6. 在页面的合适位置调用微信API,比如onReady()函数,它在页面内容加载完成时触发,用于执行SDK的初始化操作。 7. 使用wx.config()配置权限验证,并在回调函数中调用wx.ready()和wx.error()处理成功和失败的情况。 8. 在页面中添加相应的事件监听函数,响应用户的操作。 9. 测试并调试代码,确保在微信开发者工具和真实设备上表现一致。 示例代码片段: ```javascript // 1. 在页面的合适位置引入微信JS-SDK wx.config({ debug: false, // 开启调试模式 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表 }); // 2. 使用JS-SDK提供的接口,例如分享到朋友圈 wx.ready(function () { // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作 wx.onMenuShareTimeline({ title: '', // 分享标题 link: '', // 分享链接 imageUrl: '', // 分享图标 success: function () { // 用户点击了分享后执行的回调函数 } }); }); // HTML结构示例 <div class="container"> <h1>欢迎关注我们的微信订阅</h1> <!-- 其他页面元素 --> </div> // CSS样式示例 .container { text-align: center; } ``` 注意:由于微信开发环境的特殊性,具体的代码实现需要遵循微信开发规范,并且需要有一个有效的AppID和正确的签名过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值