wechatclassphp
① 接入微信开发时php实例怎么配置
第一步需要指定接收微信服务器数据的URL,同时还需要指定一个TOKEN(由开发者任意填写,用于生成签名),用于接入时的验证。
第二步要验证您指定的URL的有效性,微信服务器会像您指定的URL发送一个GET请求,该请求携带四个参数。
开发者通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
PHP检验代码如下。
<?php
$wechatObj = new wechatCallbackAPI();
$wechatObj->valid();
class wechatCallbackAPI {
private $token = "WEIXIN";
private $appId = "APPID";
private $appSecret = "APPSECRET";
private function checkSignature() {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$tmpArr = array($this->token, $timestamp, $nonce); 你看过后很简单吧以后不会可以向我一样经常到后盾人平台找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢ヾ(◍ ° ㉨ ° ◍)ノ゙
② 微商城和微信公众号验证token失败
针对客户在对接微信公众号时,微信公众号提交开发者时,提示token验证失败错误,下面请大家跟随68ecshop的技术学习一下测试处理方法:
首先,确认域名是否备案成功,不是正式域名是不能支持配置的。
其次,检查服务器上是否安装:网站安全狗,360安全卫士,防火墙等软件,此类软件必须关闭。
第三,微信Token与后台填写的Token不一致,一般默认设置为:qphp。
第四,mobile目录下weixin文件夹以及子文件需要“777”权限。
第五,在mobile/weixin/index.php文件下增加代码:echo $_GET['echostr'];exit;,如图:(注意:提交成功后撤销刚才添加的代码)
第六,可能微信服务器的响应存在缓存,微信公众平台上多次提交微信或更换浏览器再次提交。
第七,查看下边文件的编码格式:weixin文件夹下的index.php、 wechat.class.php ,注意编码格式要UTF-8的编码格式。
最后,针对linux服务器需要修改php.ini配置文件:
1. 在PHP.ini中搜索关键字 : allow_call_time_pass_reference 没有的自行建立。
2. 将 Off 改成 On ,Web Server重起就OK了,结果如下:
allow_call_time_pass_reference = Off 变成 allow_call_time_pass_reference = On。
③ 微信的一个PHP文件怎么写,要用软件吗,还是用电脑里有笔记本文件也可以写
这个是案例的代码,PHP开发工具选择是仁者见仁,智者见智。都可以的。
常用的有 记事本、editplus、Notepad++、dreamweaver、Zend Studio 等等
我用的是 editplus
④ 怎么调用wechat.class.php
include "wechat.class.php";
$wechat = new wechat();
⑤ php微信开发是什么
微信开发的意思就是,申请一个特殊账号,微信客户端对用户的请求做出个性化回应。
⑥ 如何获取微信扫码时间scancode
用的官方wechat.class.php的类, 通过微信scancode_waitmsg返回结果获取ScanResult的值 用$data['ScanCodeInfo']['ScanResult']
公众号支付申请方法:
1、登录公众平台,选择"微信支付"=》点击“开通”=》按照页面提示填写资料;企业号请登录企业号管理平台,选择“服务中心”=》点击“微信支付”进行开通。
2、收到审核通过的邮件后就可以开始开发工作。需要登录商户平台,在页面填写打款收到的金额,并在线签署协议,完成支付申请。
(PS:扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。)
⑦ 微信公众号url与token如何设置
作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见某些网页,或者给你发某些信息,你需要实时自动回复,所以你需要一个24小时为用户服务的服务器。我们所要填写的url就是你提供的服务器的地址,前提是这个服务器的地址你要能够访问,且能够控制。而token是用来验证的。
然后你需要一个服务器,服务器可以自己购买,也能用新浪sae,网络bae。方法是进入其开发者中心,注册一个开发者账号。并进行实名认证!(没有进行实名认证的小伙伴们是无法成功的)
注册完毕后,我们进入控制台创建一个新应用。
创建完应用之后我们进入左侧代码管理,提示我们创建一个新版本,点击确定创建一个新版本。然后选择第一张图中的编辑代码选项。弹出第二张图,双击index.php编辑本页代码。
将下面的代码加标点复制进去。将define("TOKEN", "weixin")这句话中的weixin改成你自己的token,例如zijidetoken;然后点击右上角的全部保存。
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be e to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
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 ))
{
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
按照第一幅图中又键点击index.php文件,选择通过URL访问得到第二幅图,复制地址栏的网址,这就是你微信开发需要填写的url,而你需要填写的token就是你上一步骤自己修改后的token。
填写完毕,提交成功。好了,你可以开始你的微信公众开发了。
END
注意事项
开发者一定要实名认证后才行,不然会提示验证token失败。
微信开发需要php知识。
⑧ wechat.class.php怎样可以2次replay
wechat.class.php
调用官方API,具有更灵活的消息分类响应方式,支持链式调用操作 ;
主要功能
接入验证 (初级权限)
自动回复(文本、图片、语音、视频、音乐、图文)(初级权限)
菜单操作(查询、创建、删除)(菜单权限)
客服消息(文本、图片、语音、视频、音乐、图文)(认证权限)
二维码(创建临时、永久二维码,获取二维码URL)(认证权限)
分组操作(查询、创建、修改、移动用户到分组)(认证权限)
网页授权(基本授权,用户信息授权)(认证权限)
用户信息(查询用户基本信息、获取关注者列表)(认证权限)
媒体文件(上传、获取)(认证权限)
调用地址组件 (支付权限)
生成订单签名数据 (支付权限)
订单成功回调 (支付权限)
发货通知 (支付权限)
支付订单查询 (支付权限)
初始化动作
$options = array(
‘token‘=>‘tokenaccesskey‘, //填写你设定的key
‘appid‘=>‘wxdk1234567890‘, //填写高级调用功能的app id, 请在微信开发模式后台查询
‘appsecret‘=>‘xxxxxxxxxxxxxxxxxxx‘, //填写高级调用功能的密钥
‘partnerid‘=>‘88888888‘, //财付通商户身份标识,支付权限专用,没有可不填
‘partnerkey‘=>‘‘, //财付通商户权限密钥Key,支付权限专用
‘paysignkey‘=>‘‘ //商户签名密钥Key,支付权限专用
);
$weObj = new Wechat($options); //创建实例对象
//TODO:调用$weObj各实例方法
新增Auth高级权限类方法:
checkAuth($appid,$appsecret) 此处传入公众后台高级接口提供的appid和appsecret, 函数将返回access_token操作令牌
createMenu($data) 创建菜单 $data菜单结构详见 http://mp.weixin.qq.com/wiki/index.php?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3
getMenu() 获取菜单
deleteMenu() 删除菜单
getMedia() 获取接收到的音频、视频媒体文件
getQRCode($scene_id,$type=0,$expire=1800) 获取推广二维码ticket字串
getQRUrl($ticket) 获取二维码图片地址
getUserList($next_openid) 批量获取关注用户列表
getUserInfo($openid) 获取关注者详细信息
getGroup() 获取用户分组列表
createGroup($name) 新增自定分组
updateGroup($groupid,$name) 更改分组名称
updateGroupMembers($groupid,$openid) 移动用户分组
sendCustomMessage($data) 发送客服消息
getOauthRedirect($callback,$state,$scope) 获取网页授权oAuth跳转地址
getOauthAccessToken() 通过回调的code获取网页授权access_token
getOauthRefreshToken($refresh_token) 通过refresh_token对access_token续期
getOauthUserinfo($access_token,$openid) 通过网页授权的access_token获取用户资料
getSignature($arrdata,‘sha1‘) 生成签名字串
generateNonceStr($length) 获取随机字串
createPackage($out_trade_no,$body,$total_fee,$notify_url,$spbill_create_ip,$fee_type=1,$bank_type="WX",$input_charset="UTF-8",$time_start="",$time_expire="",$transport_fee="",$proct_fee="",$goods_tag="",$attach="") 生成订单package字符串
getPaySign($package, $timeStamp, $nonceStr) 支付签名(paySign)生成方法
checkOrderSignature($orderxml=‘‘) 回调通知签名验证
sendPayDeliverNotify($openid,$transid,$out_trade_no,$status=1,$msg=‘ok‘) 发货通知
getPayOrder($out_trade_no) 查询订单信息
getAddrSign($url, $timeStamp, $nonceStr, $user_token=‘‘) 获取收货地址JS的签名
⑨ 如何识别浏览器是微信,并弹出图片提示
1、如何识别浏览器是微信:
W3C标准要求浏览器具有navigator这个DOM对象,此对象使用userAgent属性来描述用户代理头,可以根据userAgent来对浏览器进行识别。
<html>
<body>
<scripttype="text/javascript">
document.write("<p>UserAgent:")
document.write(navigator.userAgent+"</p>")
</script>
</body>
</html>
上例将显示浏览器的用户代理头,如
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50
是来自Mac的Safari 10。
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 MicroMessenger/6.3.27 NetType/WIFI Language/zh_CN
是来自iPhone的微信浏览器。
实际使用的时候,不需要关心userAgent的所有内容,只要抓住其关键字即可。从上面两个例子可以看出,Safari可取关键字“Safari”,微信可取关键字“MicroMessenger”。
2、如何弹出图片提示:
<html>
<body>
<!--
设计制作1.png作为微信浏览器进行浏览时弹出的提示图片,和此代码产生的html页面置于同目录
-->
<imgsrc="1.png"id="tips"style="display:none;"/>
<scripttype="text/javascript">
varua=navigator.userAgent;
if(ua.indexOf("MicroMessenger")>-1)
{//userAgent中检测到MicroMessenger关键字,是微信浏览器,弹出图片
document.getElementById("tips").style.display="block";
//下面这行代码用于没有做好提示图片时的替代
alert("这是微信浏览器");
}else
{//userAgent中没有检测到MicroMessenger关键字,不是微信浏览器
document.getElementById("tips").style.display="none";
}
</script>
</body>
</html>
⑩ 用php写的代码,接入微信服务号后,汉字会变成问号,请问代码该怎么改
把php文件存为UTF8格式的,即可。我自己写过微信公众号程序,这才是正确的处理办法。