Crypt->decryptTradeData($response_data_crypted); // echo "decryptTradeData:\r\n"; // echo $response_data . "\r\n"; return $response_data; } // 统一查询接口 public function query($openid = null,$response){ session_start(); require_once(BASE_PATH . 'helpers/dalianpay/library/Base.php'); $Base = new Base(); // 获取配置信息 $config = $Base->getConfig(); // var_dump('
', $config);

		// 接口URL
		$api_url = $config['query_url'];

		// 组装交易报文
		$reqsn_prefix = date('Ymd');
		$trade_data = array(
			'orgid' => $config['org_num'],
			'cusid' => $config['cusid'],
			'version' => $config['version'],
			// 'reqsn' => '2023072464be320f45f2a',
			'trxid' => '', // 渠道交易流水号 如果返回的有 优先使用
			'randomstr' => md5( uniqid() ),
		);

		// 解析响应报文
		$jsonString = urldecode($response);

		// 解码 Base64
		$decodedString = base64_decode($jsonString);
		$response = json_decode($decodedString, true);
		$response_data_crypted = $response['data'];
		$response_sign = $response['sign'];
		// echo "\r\n";
		// echo "[response sign]: {$response_sign}";
		// echo "\r\n";
		// echo "[response data (ciphertext)]: {$response_data_crypted}";

		// 解密响应密文
		$response_data = $Base->Crypt->decryptTradeData($response_data_crypted);
		if($response_data === false)
		{
			return $Base->Crypt->err_msg;
			die();
		}
		return $response_data;
		// echo "\r\n";
		// echo "[response data(clear text)]: {$response_data}";
	}
	// 统一支付接口
	public function pay($openid_crypt, $order_sn, $order_amount)
	{
		session_start();
		$openid = $openid_crypt;//$_SESSION['openid'];
		// $openid = $this->decrypt($_GET['openid']);
		// $reqsn = $_GET['reqsn'];
		// $trxamt = $_GET['trxamt'];

		// $openid = $this->decrypt($openid_crypt);
		// $openid = $openid_crypt;
		$reqsn = $order_sn;
		$trxamt = $order_amount;

        $string = $openid . ' + ' . $reqsn . ' + ' . $trxamt;
        // echo $string;
		
		// var_dump($openid);
		// var_dump($reqsn);
		// var_dump($trxamt);
		$redirect_url = $_SESSION['prev_url'];
		// unset($_SESSION['prev_url']);
		// var_dump($redirect_url);

		// var_dump(BASE_PATH);
		// echo "\n\r";
		$_SESSION['Base_path'] = BASE_PATH;

		// 加载基础类
		require_once(BASE_PATH . 'helpers/dalianpay/library/Base.php');
		$Base = new Base();

		// 获取配置信息
		$config = $Base->getConfig();
		// 传回org_num 供wxpay.php中使用
		$_SESSION['org_num'] = $config['org_num'];
		// var_dump('
', $config);

		// 接口URL(测试)
		$api_url = $config['pay_url'];
		// $api_url = $_POST['url'];
		$message = array(
			"url"=>$api_url,
		);
		// echo json_encode($message,true);
		// 加个body字段传中文试试

		// 组装交易报文
		$reqsn_prefix = date('Ymd');
		// var_dump("uniq_id(reqsn)");
		// echo "\r\n";
		// var_dump(uniqid($reqsn_prefix));

		// echo "reqsn is " . $reqsn . "\n\r";
		// echo "uniqid reqsn is " . uniqid($reqsn_prefix) . "\n\r";
		// echo "trxamt is " . $trxamt . "\n\r";
		$trade_data = array(
			'orgid' => $config['org_num'],
			// 'orgid' => '5503001',
			'cusid' => $config['cusid'],
			// 'cusid' => '10147',
			'branchno' => $config['branchno'],
			// 'branchno' => '44',
			'version' => $config['version'],
			// 'version' => '11',
			// jsapi支付不需要termcode
			'termcode' => $config['termcode'],
			'trxamt' => strval($trxamt),  // total_fee   bug: need:string   supply:int
			// 'trxamt' => '180000',  // total_fee
			'reqsn' => $reqsn, // 交易订单号
			// 'reqsn' => uniqid($reqsn_prefix), // 交易订单号
			'producp' => $config['producp'],
			'transtype' => $config['transtype'], // 微信支付
			'paytype' => $config['paytype'],  // 微信js支付
			'randomstr' => md5( uniqid() ),
			'body' => 'pages',
			'acct' => $openid,
			'notify_url' => $config['notify_url'], // 交易结果通知地址
			'limit_pay' => $config['limit_pay'],
			// 'sub_appid' => $config['sub_appid'],
			'front_url' => $config['front_url'], // 支付完成跳转
		);
		var_dump($trade_data);
		// echo "\r\n test \r\n";

		// 传回front_url回调地址
		$_SESSION['front_url'] = $config['front_url'];
		// var_dump($_SESSION['front_url']);
		// echo "success \n\r";

		// 生成签名
		$sign = $Base->Crypt->makeSign($trade_data);
		// echo "sign:\r\n";
		// echo $sign . "\r\n";
		if($sign === false)
		{
			// echo $Base->Crypt->err_msg;
			$errorMessage = array(
				"data"=>"makeSign error..."
			);
			return json_encode($errorMessage,true);
			die();
		}

		// echo "\r\n";
		// echo "[sign]: {$sign}";

		// 加密交易报文
		// echo "\r\n";
		// var_dump($trade_data);
		// echo "\r\n";
		$crypted_trade_data = $Base->Crypt->encryptTradeData($trade_data);
		// echo $crypted_trade_data . "\r\n";
		if($crypted_trade_data === false)
		{
			// echo $Base->Crypt->err_msg;
			$errorMessage = array(
				"data"=>"encryptTradeData error..."
			);
			return json_encode($errorMessage,true);
			die();
		}

		// echo "\r\n";
		// echo "[crypted message]: {$crypted_trade_data}";

		// 发送报文
		// echo "\r\n";
		// var_dump($api_url);
		$response = $Base->Request->send($api_url, $crypted_trade_data, $sign);
		// echo "send result\r\n";
		// echo $response . "\r\n"; // sc_test
		if($response === false)
		{
			// echo $Base->Request->err_msg;
			$errorMessage = array(
				"data"=>"send error..."
			);
			return json_encode($errorMessage,true);
			die();
		}

		// 解析响应报文
		$response = json_decode($response, true);
		$response_data_crypted = $response['data'];
		// $response_data_crypted = urldecode($response_data_crypted);
		$response_sign = $response['sign'];
		// echo "\r\n";
		// echo "[response sign]: {$response_sign}";
		// echo "\r\n";
		// echo "[response data (crypted)]: {$response_data_crypted}";

		
		// 解密响应密文
		$response_data = $Base->Crypt->decryptTradeData($response_data_crypted);
		// echo "decryptTradeData:\r\n";
		// echo $response_data . "\r\n";
		if($response_data === false)
		{
			// echo $Base->Crypt->err_msg;
			$errorMessage = array(
				"data"=>"decryptTradeData error..."
			);
			return json_encode($errorMessage,true);
			die();
		}
		// echo "\r\n";
		// echo "[response data(clear text)]: {$response_data}";
		// die();
		// var_dump(json_decode($response_data));
		// $_SESSION['response_data_json'] = $response_data;
		return json_decode($response_data,true);

		// var_dump($_SESSION['user_id']);
		// 跳回之前的地址
		// header('Location: ' . $redirect_url);
		// exit;
	}
}

// echo 'hi there.....\n\r';
// $new_plugin = new dalianpay();
// $openid_crypt = 'oCTanxBeiVFWIekJT_GiPZM2UiGY';
// $order_sn = '2023080355431';
// $order_amount = '600';
// $response_data = $new_plugin->pay($openid_crypt,$order_sn,$order_amount);
// echo $response_data;

	
?>