59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace addons\epay\library;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class RedirectResponse extends \Symfony\Component\HttpFoundation\RedirectResponse implements \JsonSerializable, \Serializable
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function __toString()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->getContent();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function setTargetUrl($url)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if ('' === ($url ?? '')) {
							 | 
						||
| 
								 | 
							
								            throw new \InvalidArgumentException('无法跳转到空页面');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->targetUrl = $url;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->setContent(
							 | 
						||
| 
								 | 
							
								            sprintf('<!DOCTYPE html>
							 | 
						||
| 
								 | 
							
								<html>
							 | 
						||
| 
								 | 
							
								    <head>
							 | 
						||
| 
								 | 
							
								        <meta charset="UTF-8" />
							 | 
						||
| 
								 | 
							
								        <meta http-equiv="refresh" content="0;url=\'%1$s\'" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <title>正在跳转支付 %1$s</title>
							 | 
						||
| 
								 | 
							
								    </head>
							 | 
						||
| 
								 | 
							
								    <body>
							 | 
						||
| 
								 | 
							
								        <div id="redirect" style="display:none;">正在跳转支付 <a href="%1$s">%1$s</a></div>
							 | 
						||
| 
								 | 
							
								        <script type="text/javascript">
							 | 
						||
| 
								 | 
							
								            setTimeout(function(){
							 | 
						||
| 
								 | 
							
								                document.getElementById("redirect").style.display = "block";
							 | 
						||
| 
								 | 
							
								            }, 1000);
							 | 
						||
| 
								 | 
							
								        </script>
							 | 
						||
| 
								 | 
							
								    </body>
							 | 
						||
| 
								 | 
							
								</html>', htmlspecialchars($url, \ENT_QUOTES, 'UTF-8')));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->headers->set('Location', $url);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $this;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function jsonSerialize()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->getContent();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function serialize()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return serialize($this->content);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function unserialize($serialized)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->content = unserialize($serialized);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |