基于curl实现微信公众平台的模拟登录、开发者信息获取和端口绑定

使用curl实现模拟登录由来已久,但应用的微信中也是最近的事。在微盟等系统中可以不进入微信公众平台即可实现微信公众平台的一些功能,想来就是使用curl实现,最近正好用到这么个东西,所以便实现了一下。

1、首先介绍一下php 中的curl:

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

直白的说,php的curl可以模拟访问浏览器的访问从而实现对服务器的数据请求,从而在不载入具体页面的情况下与服务器端进行交互以及获取所需的数据

具体的介绍和API请见:curl手册

2、具体实现

将微信公众平台的模拟登录、信息获取和接口绑定功能都封装在类wechat中

(1)__construct($user_name, $password);  构造函数,创建wechat类,传入对应的账户名和密码

(2)dologin(); 模拟登录微信公众平台,后续的操作必须在模拟登录成功获取cookie和token后才可以顺利进行

(3)changeUrl();将微信龚中平平台绑定到特定的 url 和token

(4)getUserInfo();获取当前账户的开发者信息

(5)使用类似的手段可以模拟微信公众平台的各种操作

注:因为该代码在项目环境下使用,所以有些特殊之处专门为项目设计,故仅作参考,谢谢。

class wechat{
    private $username;
    private $password;
    private $cookie;
    private $token;
    private $cookie_file;
    private $cookie_file_bk;
    public $user_info;
    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
		$this->cookie_file_bk = dirname(__FILE__).'/temp/cookie2.txt';
		$this->cookie_file = dirname(__FILE__).'/temp/cookie.txt';    
    }
    public function getToken(){
 	return $this->token;
    }
	public function getU
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: sendSubscribeMessage 是一个用于调用微信的订阅模板消息 API 的函数,你需要自己实现这个函数。在调用这个函数之前,你需要在微信开发者平台获取模板 ID 和调用凭证。然后你可以使用 PHP 的 HTTP 库(比如 cURL)发送 HTTP 请求,来调用微信的 API。 这里有一个简单的 sendSubscribeMessage 的例子: ``` function sendSubscribeMessage($toUser, $templateId, $page, $formId, $data) { $appId = '你的 appId'; $appSecret = '你的 appSecret'; // 获取 access_token $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appId&secret=$appSecret"; $res = json_decode(file_get_contents($url), true); $accessToken = $res['access_token']; // 调用订阅模板消息 API $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=$accessToken"; $data = array( 'touser' => $toUser, 'template_id' => $templateId, 'page' => $page, 'form_id' => $formId, 'data' => $data, ); $data = json_encode($data, JSON_UNESCAPED_UNICODE); $options = array( 'http' => array( 'method' => 'POST', 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'content' => $data, ), ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; } ``` 这个函数使用cURL 来发送 HTTP 请求,并使用 file_get_contents 函数来处理响应。 在调用这个函数时,你需要传入以下参数: - $toUser:接收者的 openid ### 回答2: curl)发送 HTTP 请求到微信接口,以实现消息的订阅和发送。函数的具体实现步骤如下: 1. 首先,你需要在微信开发者平台上创建一个小程序,并在该小程序创建一个订阅消息模版。获取模版 ID 和调用凭证,以便后续调用该模版发送消息。 2. 在 PHP 文件定义一个 sendSubscribeMessage 函数,用来发送订阅消息。 3. 在函数,首先构建一个 HTTP 请求,使用 curl 库向微信接口发送请求。具体的请求 URL 是:https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN,其 ACCESS_TOKEN 是你事先获取到的访问凭证,用于授权你的小程序访问微信开放接口。 4. 构建请求体,包括以下参数: - touser:接收订阅消息的用户 OpenID; - template_id:订阅消息模版的 ID; - page:点击订阅消息后跳转的小程序页面路径(可选); - data:模版消息内容,根据模版要求进行填充。 5. 将请求体转为 JSON 格式,并设置请求头的 Content-Type 为 application/json。 6. 发送 HTTP POST 请求,并获取响应。 7. 解析响应,根据接口返回的数据判断消息发送是否成功。根据返回的 errcode 判断是否出错,一般 errcode 为 0 表示发送成功,其他值表示发送失败。 8. 完成函数的实现,可以在其他地方调用 sendSubscribeMessage 函数来发送订阅消息。 总之,通过 sendSubscribeMessage 函数的实现,你可以实现调用微信提供的订阅模版消息 API,将消息发送给指定用户。调用前需要获取模版 ID 和调用凭证,并使用 PHP 的 curl 库发送 HTTP 请求到微信接口。函数的实现步骤包括构建请求、发送请求、解析响应等。 ### 回答3: 使用 curl 函数)发送网络请求,调用微信提供的订阅模版消息 API。 sendSubscribeMessage 函数的实现步骤如下: 1. 首先,需要在微信开发者平台申请并获取订阅模版的模版 ID 和调用凭证。 2. 在 PHP 使用 curl_init 函数初始化一个新的 cURL 资源。 3. 使用 curl_setopt 函数设置 cURL 选项,包括请求的 URL、请求的方法(POST)、请求头(Authorization 和 Content-Type),以及请求体的数据(订阅模版的模版 ID、用户的 OpenID 和需要传递的参数)。 4. 使用 curl_exec 函数执行 cURL 请求,并获取返回的结果。 5. 解析返回的结果,判断请求是否成功。如果成功,可以根据返回的数据进行相应的处理操作;如果失败,则可以根据返回的错误信息进行相应的错误处理。 6. 最后,使用 curl_close 函数关闭 cURL 资源,释放系统资源。 总结来说,sendSubscribeMessage 函数的工作就是通过 curl 函数发送网络请求,调用微信提供的订阅模版消息 API,并对返回的结果进行处理。这样就可以实现在 PHP 调用微信提供的订阅模版消息 API,实现订阅消息的发送功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值