php微信开源系统源码
❶ 我有一组微信号,每次刷新页面,随机显示一个微信号,怎样用php实现
php后台代码(命名为:houtai.php):
<?php
srand ((float) microtime() * 10000000);
$input = array ("wx1", "wx2", "wx3", "wx3");
$rand_keys = array_rand ($input);
//print $input[$rand_keys];
?>
前台代码(在前台展示页面,例如:index.php):
<span id="wxzs"><?php require_once 'houtai.php'; echo "$input[$rand_keys]";?></span>
主要利用随机数原理,可以参考这个网址:http://www.jb51.net/article/84856.htm
❷ 星宿UI0.6 wordpress开源小程序微信小程序开发支持QQ端
星宿UI0.6的WordPress开源小程序,不仅支持微信,同时兼容QQ端,通过更新后的界面优化,提供更加流畅的用户体验。在安全考量下,计划添加更多微信公众号引流方式,但具体实施细节暂未透露。预计枫瑞将有一段时间的空白,因为作者需参加科目一考试,一个月后计划回归。
在UI设计方面,特此感谢ps小欧的指导。以下是0.6版本更新的具体说明:
- 优化缓存机制,每个界面发起请求时自动刷新。
- 修复首页图片显示比例失真问题。
- 解决新用户分享时加载无数据的情况。
- 修正搜索页标签无法完整显示的bug。
- 金刚区支持多图滑动显示,增强视觉体验。
- 新增php焦点图片参数,提供更丰富的图片展示。
- 分享列表无法打开的问题已解决。
- UI整体细节提升,美观度和可用性进一步增强。
- 修复QQ端激励视频播放问题。
- 搜索页增加滚动条,方便用户快速滚动查找。
- 新增第一次打开时的引导提示,鼓励用户将小程序添加至我的小程序。
- 优化深色模式,提升夜间使用体验。
WordPress安装指南如下:
- 安装WordPress博客系统,具体步骤请参考网络。
- 配置HTTPS协议以增强安全性。
- 使用宝塔后台申请SSL证书,如果已有证书,请按照指示正确导入。
- 设置伪静态,选择WordPress模板并保存。
源码下载:
- PHP文件链接:[pan..com/s/1WHhu0O... 提取码:wkfn]
- 程序源码链接:[pan..com/s/1JOKSbb... 提取码:gent]
开发工具推荐使用hbuilder x,用于微信、QQ小程序开发。
- 下载hbuilder x。
- 根据系统环境(Windows或Mac)进行相应操作,配置运行环境。
- 运行小程序模拟器,选择微信小程序开发者工具。
小程序源码运行前,请确保完成以下步骤:
- 在components/api.js文件中修改域名配置。
- 自定义请求的php文件应上传到WordPress博客后台的任意目录,确保与api文件中的Getresources对应。
- 注意调试时禁用https合法域名验证,确保基础库版本不低于2.11。
若遇到QQ端项目配置错误,需在pages.json文件中替换颜色变量,以适应QQ小程序不支持深色模式的问题。
微信端若出现缺少theme.json文件或配置错误,手动将theme.json文件复制到unpackage/dist/builder/mp-weixin目录下即可。
PHP文件使用说明:
- PHP文件可上传至任意目录,确保小程序可正常访问。
- 注释掉不必要的文件字段,保持代码简洁。
WordPress设置:
- 配置伪静态。
- 后台设置固定链接,使用%post_id%。
- 调整分类目录特色图片。
- 在主题的funtions文件中添加文章特色图片代码。
小程序后台配置:
- 关联微信公众号,便于用户快捷关注。
- 配置微信端客服回复规则。
解决图片模糊问题的建议:
- 检查图床压缩设置,调整至适当级别。
- 关闭WordPress后台的自动缩略图功能。
若需更深入了解或有其他相关问题,可参考提供的视频教程。
❸ 微信红包PHP怎么开发
代码有两个php文件
1.oauth2.php
<?php
$code=$_GET['code'];
$state=$_GET['state'];
$appid='XXXX';
$appsecret='XXXXXXXX';//
if(empty($code))$this->error('授权失败');
$token_url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
$token=json_decode(file_get_contents($token_url));
if(isset($token->errcode)){
echo'<h1>错误1</h1>'.$token->errcode;
echo'<br/><h2>错误信息1:</h2>'.$token->errmsg;
exit;
}
session_start();
$_SESSION['openid']=$token->openid;
header('location:url/redpack.php');//要跳转的文件路径
?>
2.redpack.php
<?php
//XXXXX。。是需要开发者自己填写的内容型或,注意不要泄密
//从session中获取到openid;
$openid=$_SESSION["openid"];
if(empty($openid))
{
header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=XXXXXXXX&redirect_uri=http://www.XXXXXXX.com/oauth2.php&respose_type=code&scope=snsapi_base&state=XXXX&connect_redirect=1#wechat_redirect');
}
}
//关键的函数
publicfunctionweixin_red_packet(){
//请求参数
//随机字符串
$data['nonce_str']=$this->get_unique_value();
//商户号,输入你的商户号
$data['mch_id']="XXXXXXX";
//商户订单号,可以按要求自己组合28位的商户订单号
$data['mch_billno']=$data['mch_id'].date("ymd")."XXXXXX".rand(1000,9999);
//公众帐号appid,输入自己的公众号appid
$data['wxappid']="XXXXXXX";
//商户名称
$data['send_name']="XXXXX";
//用户openid,输入待发红包的用户openid
session_start();
$data['re_openid']=$_SESSION["openid"];
//付款金额
$data['total_amount']="XXXX";
//红包发放总人数
$data['total_num']="XXXX";
//红包祝福语
$data['wishing']="XXXX";
//IP地址
$data['client_ip']=$_SERVER['LOCAL_ADDR'];
//活动名称
$data['act_name']="XXXXX";
//备注
$data['remark']="XXXXX";
//生梁消成签名
//对数据数组进行处理
//API密钥,输入自己的K微信商户号里面的K
$appsecret="XXXXXXXXXXXXXX";//
$data=array_filter($data);
ksort($data);
$str="";
foreach($dataas$k=>$v){
$str.=$k."=".$v."&";
}
$str.="key=".$appsecret;
$data['sign']=strtoupper(MD5($str));
/*
发红包操作过程:
1.将请求数据转换成xml
2.发送请求
3.将请求结果转换为数组
4.将请求信息和请求结果录入到数据库中
4.判断是否通信成功
5.判断是否转账成功
*/
//发红包接口地址
$url="https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
//将请求数据由数组转换卜渣伍成xml
$xml=$this->arraytoxml($data);
//进行请求操作
$res=$this->curl($xml,$url);
//将请求结果由xml转换成数组
$arr=$this->xmltoarray($res);
}
//生成32位唯一随机字符串
privatefunctionget_unique_value(){
$str=uniqid(mt_rand(),1);
$str=sha1($str);
returnmd5($str);
}
//将数组转换成xml
privatefunctionarraytoxml($arr){
$xml="<xml>";
foreach($arras$k=>$v){
$xml.="<".$k.">".$v."</".$k.">";
}
$xml.="</xml>";
return$xml;
}
//将xml转换成数组
privatefunctionxmltoarray($xml){
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$xmlstring=simplexml_load_string($xml,"SimpleXMLElement",LIBXML_NOCDATA);
$arr=json_decode(json_encode($xmlstring),true);
return$arr;
}
//进行curl操作
privatefunctioncurl($param="",$url){
$postUrl=$url;
$curlPost=$param;
//初始化curl
$ch=curl_init();
//抓取指定网页
curl_setopt($ch,CURLOPT_URL,$postUrl);
//设置header
curl_setopt($ch,CURLOPT_HEADER,0);
//要求结果为字符串且输出到屏幕上
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//post提交方式
curl_setopt($ch,CURLOPT_POST,1);
//增加HTTPHeader(头)里的字段
curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);
//终止从服务端进行验证
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
//证书放到网站根目录的cert文件夹底下
curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.
'cert'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');
curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.
'cert'.DIRECTORY_SEPARATOR.'apiient_key.pem');
curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.
'cert'.DIRECTORY_SEPARATOR.'rootca.pem');
//运行curl
$data=curl_exec($ch);
//关闭curl
curl_close($ch);
return$data;
}
?>
可参考官方文档进行调整开发,希望能有帮助,望采纳
❹ 微信PHP SDK进行了更新,更新代码如何使用。
一、写好接口程序
在你的服务器上上传好一个接口程序文件 内容如下:
<?php
define("TOKEN", "weixin");//自己定义的token 就是个通信的私钥
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
//$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_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 = '你好啊.;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo '说说话吧';
}
}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 ){