Files
mier-php/application/api/wxapi/Wxqr.php
2025-08-11 10:22:05 +08:00

49 lines
1.4 KiB
PHP

<?php
namespace app\api\wxapi;
use app\api\wxapi\Base;
use app\api\wxapi\WxClient;
use app\api\wxapi\pay\WxPayConfig;
use app\api\wxapi\request\AccessTokenRequest;
use app\api\wxapi\post\QrcodeCreatePost;
class Wxqr extends Base{
public function getQr($fileName='', $val=''){
if(file_exists(trim($fileName,'/'))){
return $fileName;
}
$WxPayConfig = new WxPayConfig();
$WxClient =new WxClient();
$WxClient->appID=$WxPayConfig->GetAppId();
$WxClient->appsecret=$WxPayConfig->GetAppSecret();
$AccessTokenRequest=new AccessTokenRequest();
$AccessTokenRequest->setAppId($WxClient->appID);
$AccessTokenRequest->setSecret($WxClient->appsecret);
$AccessTokenRequest=$WxClient->execute($AccessTokenRequest);
$QrcodeCreatePost=new QrcodeCreatePost();
$QrcodeCreatePost->setAccessToken($AccessTokenRequest->access_token);
$QrcodeCreatePost->setActionName(QrcodeCreatePost::ACTION_NAME_QR_LIMIT_STR_SCENE);
//$QrcodeCreatePost->setExpireSeconds(60*60); //临时时间戳
$QrcodeCreatePost->setSceneVal($val);
$QrcodeCreatePost->run();
$WxClient->setTypeCurl(WxClient::TYPE_CURL_POST);
$QrcodeInfo=$WxClient->execute($QrcodeCreatePost);
if($QrcodeInfo->url){
$url='https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.$QrcodeInfo->ticket;
$current = file_get_contents($url);
file_put_contents($fileName, $current);
return $fileName;
}
return '';
}
}
?>