Viktor K
Guest
Проблема с отправкой денег на egold
Проблема заключается вот в чем:
Есть скрипт который принимает деньги, а потом отсылает их на 2 разных egold аккаунта. Допустим, приходят 10$, а потом 4$ уходят на 1-ый акк и 3$ на 2-ой. Так вот последнее время, иногда стали происходить повторы. То есть пришло 10$, а отправилось например два раза по 3$. Притом, что это случается не всегда. Если бы дело было в скриптах, это было бы регулярно. Может быть дело в egold.com. При каком-нибудь таймауте, он повторно отправляет данные, толи еще в чем дело.
Ниже функция отправки денег на эти два аккаунта:
Может быть есть какие-то идеи или кто-то с похожим уже сталкивался...
Проблема заключается вот в чем:
Есть скрипт который принимает деньги, а потом отсылает их на 2 разных egold аккаунта. Допустим, приходят 10$, а потом 4$ уходят на 1-ый акк и 3$ на 2-ой. Так вот последнее время, иногда стали происходить повторы. То есть пришло 10$, а отправилось например два раза по 3$. Притом, что это случается не всегда. Если бы дело было в скриптах, это было бы регулярно. Может быть дело в egold.com. При каком-нибудь таймауте, он повторно отправляет данные, толи еще в чем дело.
Ниже функция отправки денег на эти два аккаунта:
В скрипте эта функция выполняется только дважды и нигде не зацикливается.PHP:function TransEgoldMoney($to, $ammount, $dsc) { global $AccountID, $PassPhrase; $Memo = urlencode(stripslashes($dsc)); $vars = "AccountID=" . $AccountID . "&PassPhrase=" . $PassPhrase . "&Payee_Account=" . $to . "&Amount=" . $ammount . "&Memo=" . $Memo . "&PAY_IN=1&WORTH_OF=Gold&IGNORE_RATE_CHANGE=Y"; $cu = curl_init(); curl_setopt($cu, CURLOPT_URL, "https://www.e-gold.com/acct/confirm.asp"); curl_setopt($cu, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($cu, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($cu, CURLOPT_POST, 1); curl_setopt($cu, CURLOPT_POSTFIELDS, $vars); curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cu, CURLOPT_TIMEOUT, 100); curl_setopt($cu, CURLOPT_SSL_VERIFYPEER, 0); $output = curl_exec($cu); $succeeded = curl_errno($cu) == 0 ? true : false; curl_close($cu); if(!$succeeded) { return false; } else { if (preg_match_all("/<input type=hidden name=([^?]*?) value=\"([^?]*?)\">/", $output, $matches)) { $num = count($matches[1]); for($i=0;$i<$num;$i++) { $output_vars[$matches[1][$i]] = $matches[2][$i]; } if($output_vars["ERROR"]) { return false; } elseif ($output_vars["PAYMENT_BATCH_NUM"] && $output_vars["PAYMENT_AMOUNT"]) { return true; } else { return false; } } else { return false; } //echo "-----------\n\n\n\n\n\n\n".$output."\n\n\n\n\n\n\n-----------"; } //end func }
Может быть есть какие-то идеи или кто-то с похожим уже сталкивался...