You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
1.9 KiB

<?php
error_reporting(E_ALL ^ E_NOTICE);
if($_REQUEST['token']) {
//2.x 绗?簩姝? Prism鏈嶅姟鍣ㄦ牴鎹畉oken鑾峰彇閰嶇疆鍙傛暟
$_REQUEST['token'] = preg_replace("/[^A-z0-9]/",'',$_REQUEST['token');
get_args_by_token($_REQUEST['token']);
}else{
//1.x 绗?竴姝? 浜哄伐浜や簰杩囩▼
create_new_token();
}
function create_new_token(){
switch($_REQUEST['step']){
// 1.1 鐢ㄦ埛浜や簰娴佺▼瀹屾瘯,
// 淇濆瓨閰嶇疆鍙傛暟鍒颁复鏃跺瓨鍌? 浜х敓涓€涓??搴旂殑token. 骞惰烦杞?洖callback
case 'finish':
$args = $_POST['p'];
$token = md5(time(). print_r($_SERVER, 1));
file_put_contents('/tmp/'.$token, serialize($args));
$redirect = $_REQUEST['callback'].'?token='.urlencode($token);
header('Location: '.$redirect);
break;
//1.0 绗?竴姝? 灞曠幇椤甸潰.
// 鍙?互鏀剧疆韬?唤璁よ瘉绛夎嫢骞查〉闈㈡祦绋? 鍙??鏈€鍚庝竴姝ヨ兘璺宠浆鍒癱allback鍗冲彲.
default :
echo <<<EOF
<html>
<h1>Set Params</h1>
<hr />
<form action="?step=finish" method="post">
<input type="hidden" name="callback" value="{$_REQUEST['callback']}" />
<pre>
shop_id <input type="text" name="p[shop_id]" value="testid123" />
app_secret <input type="text" name="p[api_secret]" value="secret9527" />
<input type="submit" />
</pre>
</form>
</html>
EOF;
}
}
// 2.0 鏍规嵁token鑾峰彇閰嶇疆鍙傛暟, 鐢熸垚json浠g爜杩斿洖缁檖rism
function get_args_by_token($token){
$token_file = '/tmp/'.$token;
if(file_exists($token_file)){
$data = file_get_contents($token_file);
if ($data) {
$data = unserialize($data);
echo json_encode($data);
}
unlink($token_file);
}
}