Bitcoin Forum
November 22, 2017, 12:04:38 PM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Прикрутить автоприем MtGox кодов и BitPay  (Read 1057 times)
AlexNeto
Hero Member
*****
Offline Offline

Activity: 608



View Profile
January 20, 2013, 11:02:03 PM
 #1

Ищу исполнителей для небольшего задания.

Требования: Php, MySQL, знание MtGox api, BitPay.

Обменник полуавтомат - автоматически принимать гокс коды, btc (через сторонний процессинг).
Либо писать с нуля, либо запилить на какой-нибудь Joomla+BreezingForms например.

ТЗ еще нет, писать буду консультируясь с исполнителем.


Рассмотрю различные варианты сотрудничества. В идеале было бы долевое партнерство - с вас техническая реалиация и поддержка, с меня финансовая сторона, продвижение.

В личку пишите.

Gold is old people's Bitcoin. (c)
If you want to be a moderator, report many posts with accuracy. You will be noticed.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
AlexNeto
Hero Member
*****
Offline Offline

Activity: 608



View Profile
January 24, 2013, 02:05:54 AM
 #2

Надо срочно.

Хотя бы просто обработка MtGox redeemable code. Оставим на потом все остальное.
Кто шарит в MtGox API?
0/redeemCode.php


Gold is old people's Bitcoin. (c)
Yurock
Sr. Member
****
Offline Offline

Activity: 462


View Profile
January 28, 2013, 06:28:35 PM
 #3

Хотя бы просто обработка MtGox redeemable code.
Code:
<?php
$ratio 
1;
$mail = array (
 
'from' => '',
 
'to' => '',
 
'subject' => '',
 
'parameters' => '',
);
$mtgox_key '';
$mtgox_secret base64_decode ('');
$logfile 'mtgox.log';

$mtgox_error false;
function 
mtgox_error ($m$curl null) {
 global 
$mtgox_error;
 if (
$curl$m .= ': ' curl_error ($curl);
 
$mtgox_error "$m\n";
}
function 
mtgox_log ($result null$amount null) {
 global 
$code$msg$mtgox_error$logfile;
 
$m = array (
  
'time' => time (),
  
'code' => $code,
  
'msg' => $msg,
  
'addr' => $_SERVER ['REMOTE_ADDR'],
 );
 if (isset (
$result)) $m ['result'] = $result;
 if (
is_numeric ($amount)) $m ['amount'] = $amount;
 if (
is_string ($mtgox_error)) $m ['error'] = $mtgox_error;
 
$f fopen ($logfile'at');
 if (
$f) {
  
fwrite ($fserialize ($m) . "\n");
  
fclose ($f);
 }
}
function 
mtgox0 ($method$data = array ()) {
 global 
$mtgox_key$mtgox_secret;
 
$curl curl_init ("https://mtgox.com/api/0/$method.php");
 if (! 
$curl) return mtgox_error ('curl_init () failed');
 if (! 
curl_setopt ($curlCURLOPT_RETURNTRANSFERtrue)) return mtgox_error ('curl_setopt (CURLOPT_RETURNTRANSFER) failed'$curl);
 if (! 
curl_setopt ($curlCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MtGox PHP client; ' php_uname ('s') . '; PHP/' phpversion () . ')')) mtgox_error ('curl_setopt (CURLOPT_USERAGENT) failed'$curl);
 
$r explode (' 'microtime ());
 
$data ['nonce'] = $r [1] . substr ((int) (($r [0] + 1) * 1000000), 1);
 
$r http_build_query ($data);
 if (! 
curl_setopt ($curlCURLOPT_POSTFIELDS$r)) return mtgox_error ('curl_setopt (CURLOPT_POSTFIELDS) failed'$curl);
 if (! 
curl_setopt ($curlCURLOPT_HTTPHEADER, array (
  
"Rest-Key: $mtgox_key",
  
'Rest-Sign: ' base64_encode (hash_hmac ('sha512'$r$mtgox_secrettrue)),
 ))) return 
mtgox_error ('curl_setopt (CURLOPT_HTTPHEADER) failed'$curl);
 
$r curl_exec ($curl);
 if (
curl_errno ($curl)) return mtgox_error ('curl_exec () failed'$curl);
 if (! 
is_string ($r)) return mtgox_error ('CURL did not return data');
 
$d json_decode ($rtrue);
 
$e json_last_error ();
 if (
$e) return mtgox_error ("json_decode () failed: $e; raw data: $r");
 return 
$d;
}
$msg array_key_exists ('msg'$_POST) ? trim ($_POST ['msg']) : '';
$code array_key_exists ('code'$_POST) ? trim ($_POST ['code']) : '';
if (
array_key_exists ('more'$_POST)) $code '';
echo 
'<?xml version="1.0" encoding="UTF-8"?>
';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>Код Mt.Gox</title>
<style type="text/css">
body {
 background: #67727B;
 font-family: "Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
}
#container {
 width: 35em;
 margin: 20px auto;
 background: black;
 padding-top: 40px;
 box-shadow: 0 0 5px #000;
}
form, textarea, input {
 color: #000;
}
form, textarea, input.text {
 background: #FFF;
}
form {
 padding: 1em 3em 2em;
}
.field {
 margin: 1em 0;
}
textarea, input.text {
 font-family: inherit;
 font-size: inherit;
 width: 28em;
 box-shadow: inset 0 1px 1px #CCC;
 border-bottom: 1px solid #DDD;
 border-left: 1px solid #C3C3C3;
 border-right: 1px solid #C3C3C3;
 border-top: 1px solid #7C7C7C;
 display: block;
 margin-top: .2em;
}
.error {
 color: red;
}
</style>
</head>
<body>
<div id="container">
<form action="<?php echo htmlspecialchars (basename ($_SERVER ['PHP_SELF'])); ?>" method="post">
<?php
if (strlen ($msg) && strlen ($code)) {
 
mtgox_log ();
?>

<input name="msg" type="hidden" value="<?php echo htmlspecialchars ($msgENT_NOQUOTES); ?>" />
<input name="code" type="hidden" value="<?php echo htmlspecialchars ($code); ?>" />
<table>
<tr><td align="right">Сообщение:</td><td align="left"><pre><?php echo htmlspecialchars ($msgENT_NOQUOTES); ?></pre></td></tr>
<tr><td align="right">Код:</td><td align="left"><?php echo htmlspecialchars ($codeENT_NOQUOTES); ?></td></tr>
<?php
 $success 
false;
 
$error '';
 
$r mtgox0 ('redeemCode', array ('code' => $code));
 if (
$r) {
  if (
is_array ($r)) {
   if (
array_key_exists ('amount'$r) && array_key_exists ('currency'$r) && is_numeric ($r ['amount']) && $r ['amount']) {
    
$c $r ['currency'];
    
$amount number_format ($r ['amount'] * $ratio2);
    
mtgox_log ($r$amount);
    
$m =
     
"&#1050; &#1079;&#1072;&#1095;&#1080;&#1089;&#1083;&#1077;&#1085;&#1080;&#1102;: $amount $c\n" .
     
"\n&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;\n$msg\n\n" .
     
"&#1050;&#1086;&#1076;: $code\n" .
     
"\nMt. Gox\n";
    foreach (
$r as $n => $v$m .= "$n$v\n";
    
$m .= "\nIP-&#1072;&#1076;&#1088;&#1077;&#1089;: " $_SERVER ['REMOTE_ADDR'] . "\n";
    
$m str_replace ("\r\n""\n"$m);
    
$m str_replace ("\r""\n"$m);
    
$m str_replace ("\n.""\n.."$m);
    
$m str_replace ("\n""\r\n"$m);
    
$success mail ($mail ['to'], $mail ['subject'], $m"Content-Type: text/plain; charset=UTF-8\r\nFrom: " $mail ['from'], $mail ['parameters']);
    echo 
'<tr><td align="right">&#1062;&#1077;&#1085;&#1072; &#1082;&#1086;&#1076;&#1072;:</td><td align="left">'htmlspecialchars ($r ['amount'] . ' ' $cENT_NOQUOTES), '</td></tr>';
    echo 
'<tr><td align="right">&#1041;&#1091;&#1076;&#1077;&#1090; &#1079;&#1072;&#1095;&#1080;&#1089;&#1083;&#1077;&#1085;&#1086;:</td><td align="left">'htmlspecialchars ($amount ' ' $cENT_NOQUOTES), '</td></tr>';
    if (
array_key_exists ('reference'$r))
     echo 
'<tr><td align="right">&#1050;&#1086;&#1076; &#1086;&#1087;&#1077;&#1088;&#1072;&#1094;&#1080;&#1080;:</td><td align="left">'htmlspecialchars ($r ['reference'], ENT_NOQUOTES), '</td></tr>';
   }
   if (
array_key_exists ('error'$r) && is_string ($r ['error'])) $error '&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077; &#1086;&#1090; Mt. Gox: ' $r ['error'];
  } else 
mtgox_log ($r);
 } else 
mtgox_log ();
?>

</table>
<?php
 
if (! $success) echo '<p class="error">' . (strlen ($error) ? htmlspecialchars ($errorENT_NOQUOTES) : '&#1055;&#1088;&#1086;&#1080;&#1079;&#1086;&#1096;&#1083;&#1072; &#1086;&#1096;&#1080;&#1073;&#1082;&#1072;. &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1089;&#1074;&#1103;&#1078;&#1080;&#1090;&#1077;&#1089;&#1100; &#1089;&#1086; &#1089;&#1083;&#1091;&#1078;&#1073;&#1086;&#1081; &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1082;&#1080;.') . '</p><input type="submit" value="&#1055;&#1086;&#1087;&#1088;&#1086;&#1073;&#1086;&#1074;&#1072;&#1090;&#1100; &#1077;&#1097;&#1105; &#1088;&#1072;&#1079;" /> ';
 echo 
'<input name="more" type="submit" value="&#1048;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; &#1076;&#1088;&#1091;&#1075;&#1086;&#1081; &#1082;&#1086;&#1076;" />';
} else {
?>

<div class="field">
<label>Сообщение<textarea name="msg" cols="33" rows="10"><?php echo htmlspecialchars ($msgENT_NOQUOTES); ?></textarea></label>
<?php if (array_key_exists ('msg'$_POST) && ! strlen ($msg)) echo '<div class="error">&#1053;&#1072;&#1087;&#1080;&#1096;&#1080;&#1090;&#1077; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;.</div>'?>
</div>
<div class="field">
<label>Код Mt. Gox<input name="code" class="text" value="<?php echo htmlspecialchars ($code); ?>" /></label>
<?php if (array_key_exists ('code'$_POST) && ! strlen ($code) && ! array_key_exists ('more'$_POST)) echo '<div class="error">&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1076;.</div>'?>
</div>
<div><input type="submit" /></div>
<?php
}
?>

</form>
</div>
</body>
</html>
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!