微信开发调错

漫步的猪 2017-01-17 03:23:39
刚开始学习微信开发
有一个问题类似微信这种接口开发,如何调试错误了.普通程序直接打开对应的文件就可以看到错误代码.而微信开发,我直接地址栏输入入口地址123.com/index.php 文件基本都是报错
举个例子我在123.com/index.php定义了一个verify方法,用于测试号的绑定,我直接输入上面网址,都是报错,提示找不到index echostr, singnature,因为接受不到微信服务器发来的数据,其实他本身代码并没有问题,有时候某行代码丢了;号啥的,由于没有错误提示,只能一行行去看代码.大家是怎么调试错误的,很困扰我,谢谢大家

private function verify($token) {
//接收微信GET传递过来的参数
$echoStr = $_GET["echostr"];
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
//1.将token、timestamp、nonce三个参数进行字典序排序
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
//2.将三个参数字符串拼成一个字符串,进行sha1加密
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
//3.开发者获得加密后的字符串可与signature对比
if ($tmpStr == $signature && isset($_GET['echostr'])) {
echo $_GET['echostr'];
} else {
return false;
}
}
...全文
364 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2017-01-18
  • 打赏
  • 举报
回复
如果是看代码错误,首先你开启错误提示,然后查看php日志就可以

<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>
然后你用参数请求你的php,有错误就会返回了。
漫步的猪 2017-01-18
  • 打赏
  • 举报
回复
引用 1 楼 fdipzone 的回复:
第2个问题 调试回调接口,首先你需要在接口中加入log,就是写一个log文件, 例如 <?php $logdata = json_encode($_REQUEST); file_put_contents('wx.log', $logdata, FILE_APPEND); ?> 然后就拿到微信请求过来的参数了,你可以多次使用他这些请求参数来调试。直到调试成功。
这种如果我本身代码哪里写错了,能看到吗,例如丢了{,或者变量名写错等等.单机上的直接可以看到错误的行数和提示
傲雪星枫 2017-01-17
  • 打赏
  • 举报
回复
第一个问题。 你代码是没问题的,可以请求到

$appID = '1';
$appsecret = 'abc';
$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appID.'&secret='.$appsecret;
          
         $ch=curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//不做服务器认证
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);//不做客户端认证
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $token=curl_exec($ch);
        curl_close($ch);
echo $token;
输出:{"errcode":40013,"errmsg":"invalid appid hint: [xa7PhA0367e575]"} 表示可以请求到,不会是false的,如果你还是false可以直接用我的代码测试 第2个问题 调试回调接口,首先你需要在接口中加入log,就是写一个log文件, 例如 <?php $logdata = json_encode($_REQUEST); file_put_contents('wx.log', $logdata, FILE_APPEND); ?> 然后就拿到微信请求过来的参数了,你可以多次使用他这些请求参数来调试。直到调试成功。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧