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 ){