我正在将Perfect Money整合到Instant Payments项目中。我在这里遇到了错误。我正在应用所有信息,但仍然返回提供的用户名和密码不正确。这是我的代码。
if(isset($_POST['req_pay']))
{
$f=fopen('https://perfectmoney.is/acct/confirm.asp?AccountID=myaccount&PassPhrase=mypassword&Payer_Account=U10428073&Payee_Account=U1234567&Amount=1&PAY_IN=1&PAYMENT_ID=1223', 'rb');
if($f===false){
echo 'error openning url';
}
// getting data
$out=array(); $out="";
while(!feof($f)) $out.=fgets($f);
fclose($f);
// searching for hidden fields
if(!preg_match_all("/<input name='(.*)' type='hidden' value='(.*)'>/", $out, $result, PREG_SET_ORDER)){
echo 'Ivalid output';
exit;
}
$ar="";
foreach($result as $item){
$key=$item[1];
$ar[$key]=$item[2];
}
echo '<pre>';
print_r($ar);
echo '</pre>';
}
?>
答案 0 :(得分:1)
您通常会使用http_build_query
建立一个网址,例如
$params = array('AccountID' => 'myaccount',
'PassPhrase' => 'mypassword',
'Payer_Account' => 'U10428073',
'Payee_Account' => 'U1234567',
'Amount' => 1,
'PAY_IN' => 1,
'PAYMENT_ID' => 1223,
);
$query = http_build_query($params);
$url = 'https://perfectmoney.is/acct/confirm.asp?' . $query;
然后打开这个网址:
$f = fopen($url);