рд╕рд╛рдЗрдЯ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдмрдордиреА рдХрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди


рд╣рд╛рдп, рд╣реЗрдмреНрд░!

рдореИрдВ рд╡реНрдпрд╛рдкрд╛рд░реА рд╡реЗрдмрдордиреА (merchant.webmoney.ru) рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдП рдмрд┐рдирд╛ рд╡реЗрдмрдордиреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рднреБрдЧрддрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдлрд╝рд▓рд╛рдЗрди рд╕реНрдЯреЛрд░, рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЧреЗрдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдмрд╣реБрдд рд╕реЗ php рдХреЛрдб рд╣реЛрдВрдЧреЗ)

рдпрд╣ рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░ рд╕реЗ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

рднреБрдЧрддрд╛рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдирдВрдмрд░ \ WMID \ рдИрдореЗрд▓ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдЙрд╕реЗ 3 рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рднреБрдЧрддрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рд╣реЛрдЧреА:

рднреБрдЧрддрд╛рди рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рднреБрдЧрддрд╛рди рдХреЗ рддрдереНрдп рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рд╣реЛрдЧреАред

рдСрдлрд╝рд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реА рдФрд░ рджреВрд╕рд░реА рдкреБрд╖реНрдЯрд┐рдХрд░рдг рд╡рд┐рдзрд┐ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред

рддреИрдпрд╛рд░реА:

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ, рдЙрдирдореЗрдВ рд╕реЗ 3 рд╣реИрдВ:
  1. WMSigner рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрд╛рдХреНрд╖рд░
  2. рдПрдордбреА 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
  3. рдЧреБрдкреНрдд рдХреБрдВрдЬреА рд╕реНрдерд╛рдирд╛рдВрддрд░рдг

рдореИрдВ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ 2 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдЬрдм рд╕реЗ рддреАрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (DNS рд╕реНрдкреВрдлрд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, https рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдкреНрд░рд╛рдорд╛рдгрд┐рдХрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛):

1) WMSigner - рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЬреЛ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ WM рдХреАрдкрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЪреЛрд░реА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдКрдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ README.rus рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

2) рдПрдордбреА 5
Md5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдЧрдарди рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддреИрдпрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдпрд╣ рд╣реИрд╢рд┐рдВрдЧ рддрдХрдиреАрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реИ (php рдореЗрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░реЗрдВрдЧреЗ)ред

рдпрд╣ рд╡рд┐рдзрд┐ рдкрд╕рдВрдж рдХреА рдЬрд╛рддреА рд╣реИ рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдПрдХреНрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ WMSigner рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реА gluing рд╕реЗ рдПрдХ md5 рд╣реИрд╢ рд╣реЛрдЧрд╛
wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key

WMID + seller_ wallet + payment_number + phone_number \ email \ wmid_client + рдкрд┐рдЫрд▓реЗ_рдлрд╝реАрд▓реНрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ + рдЧреБрдкреНрдд рдХреБрдВрдЬреА

рдХреЛрдб

рдмрд╛рддрдЪреАрдд рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ php рдХреЛ рдЪреБрдирд╛ред рдЖрдк рдпрд╣рд╛рдВ рд╕рднреА рдХреЛрдб (рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ) рджреЗрдЦ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рднреБрдЧрддрд╛рди рдХрд╛ рдкреНрд░рдХрд╛рд░:
<html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <form method="post" action=""> <select name="purse"> <option value="wmr">WMR</option> <option value="wmz">WMZ</option> </select><br />    WMR   :<br /> <input type="text" name="amount" VALUE="12.34"><br />   :<br /> <input type="text" name="desc" value=" "><br />  :<br /> <select name="number_type"> <option value="0"></option> <option value="1">WMID</option> <option value="2">Email</option> </select> <input type="text" name="number" value="79167777777"><br />  :<br /> <select name="confirmation_type"> <option value="1">SMS   </option> <option value="2" selected>USSD   </option> <option value="3"> /   </option> <option value="4"> </option> </select><br /> <input type="submit" value=" "> </form> </body> </html> 


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - 2 рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпред
 function wmsign($input) //    WMSigner { global $_SETTINGS; //    WMSigner,    . $f=proc_open("./signer/wmsigner -i ./signer/wmsigner.ini -k ./signer/".$_SETTINGS['wmid'].".kwm", array( 0=>array("pipe", "r"), 1=>array("pipe", "w"), 2=>array("file", "/tmp/error-output.txt", "a")), $pipes); if(is_resource($f)) { $output=""; //        . fwrite($pipes[0], $input); fclose($pipes[0]); //      while(!feof($pipes['1'])) { $output .= fread($pipes[1], '1024'); } //       WMSigner fclose($pipes['1']); proc_close($f); } return $output; } function post($post,$url="https://merchant.webmoney.ru/conf/xml/XMLTransRequest.asp") //  post  { $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $result=curl_exec($ch); curl_close($ch); return $result; } 


рд╣рдо рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗрдмрдордиреА рдХреЗ рд▓рд┐рдП рдПрдХ XML рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦреЗрдВ, рдЗрд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ рдФрд░ рднреЗрдЬреЗрдВред рдЕрдЧрд▓рд╛, рдЕрдиреБрд░реЛрдз рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ - рднреБрдЧрддрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдо рдЬрд╛рд░реА рдХрд░реЗрдВред рдпрджрд┐ рдПрд╕рдПрдордПрд╕ - рддреЛ рд╣рдо рдПрд╕рдПрдордПрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рднреА рдкреВрдЫрддреЗ рд╣реИрдВред

 $_SETTINGS=array( 'wmid'=>'123456789012', // wmid 'wmr'=>'R123456789012', // R  'wmz'=>'R123456789012', // Z  'amount'=>'123.45', //  'desc'=>' X20', //  'sing_method'=>'sing', //  , md5\sing (by default)\secret_key 'secret_key'=>'t4er43d#4' //  ,     . ); if($_SERVER['REQUEST_METHOD']=="POST") { //     .    -   $error = True; switch($_REQUEST['purse']) //   ,    ,     .   - WMZ { case "wmr": $purse=$_SETTINGS['wmr']; break; default: $purse=$_SETTINGS['wmz']; } if(!(is_numeric($_REQUEST['number_type'])&&$_REQUEST['number_type']<3&&$_REQUEST['number_type']>=0)) //   s { $error=True; $errors['number_type']=" "; } if(!(is_numeric($_REQUEST['confirmation_type'])&&$_REQUEST['confirmation_type']<=4&&$_REQUEST['confirmation_type']>0)) //    { $error=True; $errors['confirmation_type']=" "; } $amount=(is_numeric($_POST['amount']))?$_POST['amount']:$_SETTINGS['amount']; if(!$error) { $pay_no=time(); //   $xml=new DomDocument('1.0', 'utf-8'); $xml->formatOutput=true; //   $merchant=$xml->appendChild($xml->createElement('merchant.request')); $merchant->appendChild($xml->createElement('wmid'))->appendChild($xml->createTextNode($_SETTINGS['wmid'])); // WMID $merchant->appendChild($xml->createElement('lmi_payee_purse'))->appendChild($xml->createTextNode($purse)); //   $merchant->appendChild($xml->createElement('lmi_payment_no'))->appendChild($xml->createTextNode($pay_no)); //       $merchant->appendChild($xml->createElement('lmi_payment_amount'))->appendChild($xml->createTextNode($amount)); //       ,  - . $merchant->appendChild($xml->createElement('lmi_payment_desc'))->appendChild($xml->createTextNode($_SETTINGS['desc'])); //  , 255 . $merchant->appendChild($xml->createElement('lmi_clientnumber'))->appendChild($xml->createTextNode($_REQUEST['number'])); //   (  79167777777,380527777777), WMID, email. $merchant->appendChild($xml->createElement('lmi_clientnumber_type'))->appendChild($xml->createTextNode($_REQUEST['number_type'])); //  ,   lmi_clientnumber (0-, 1-WMID, 2-email) $merchant->appendChild($xml->createElement('lmi_sms_type'))->appendChild($xml->createTextNode($_REQUEST['confirmation_type'])); //    (1-, 2-USSD, 3- ,           ..,   - , 4-  WM ) $merchant->appendChild($xml->createElement('secret_key'))->appendChild($xml->createTextNode('')); //    (1-, 2-USSD, 3- ,           ..,   - , 4-  WM ) //         switch($_SETTINGS['sign_method']) { case "md5": // md5,   ,        md5     $sign = md5($_SETTINGS['wmid'].$purse.$pay_no.$_REQUEST['number'].$_REQUEST['number_type'].$_SETTINGS['secret_key']); $merchant->appendChild($xml->createElement('md5'))->appendChild($xml->createTextNode($sign)); break; case "sign": //    WMSigner //     ,      . $sign = wmsign($_SETTINGS['wmid'].$purse.$pay_no.$_REQUEST['number'].$_REQUEST['number_type']); $merchant->appendChild($xml->createElement('sign'))->appendChild($xml->createTextNode($sign)); break; } //     WebMoney,  POST $result=post($xml->saveXML(),"https://merchant.webmoney.ru/conf/xml/XMLTransRequest.asp"); //   dom, ..    XML  $dom=new domDocument; $dom->loadXML($result); if(!$dom) die("  XML"); $data=simplexml_import_dom($dom); //    (retval -  , 0    ),      . if($data->retval!=0) { echo $data->retval." Error: ".$data->userdesc."\n\n"; } else { ?> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <form method="post" action=""> <input type="hidden" name="confirmation" value="1"> <?= ($data->realsmstype==1)?' ,   <br />\n':'' ?><input type="<?= ($data->realsmstype==1)?'text':'hidden' ?>" name="code" value="<?= ($data->realsmstype==1)?'':0 ?>"> <input type="hidden" name="account" value="<?=$data->operation['wminvoiceid']?>"> <input type="hidden" name="purse" value="<?= $_REQUEST['purse'] ?>"> <input type="submit" value=" ."> </form> </body> </html> <? } } 

рдХреНрд▓рд╛рдЗрдВрдЯ рднреБрдЧрддрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдПрд╕рдПрдордПрд╕ - рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЖрдП рдХреЛрдб рдореЗрдВ, рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде - рдмрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ) рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рднреБрдЧрддрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реЗрдмрдордиреА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рд╣рдо рдкреИрд╕реЗ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
 //  ,       . if(!$error) { $xml=new DomDocument('1.0','utf-8'); $xml->formatOutput = true; //   $merchant = $xml->appendChild($xml->createElement('merchant.request')); $merchant->appendChild($xml->createElement('wmid'))->appendChild($xml->createTextNode($_SETTINGS['wmid'])); // WMID $merchant->appendChild($xml->createElement('lmi_payee_purse'))->appendChild($xml->createTextNode($purse)); //   $merchant->appendChild($xml->createElement('lmi_clientnumber_code'))->appendChild($xml->createTextNode($_REQUEST['code'])); //  ,    (WM \USSD = 0, -1  ) $merchant->appendChild($xml->createElement('lmi_wminvoiceid'))->appendChild($xml->createTextNode($_REQUEST['account'])); //  ,     switch($_SETTINGS['sign_method']) { case "md5": // md5,   ,        md5     $sign=md5($_SETTINGS['wmid'].$purse.$_REQUEST['account'].$_REQUEST['code'].$_SETTINGS['secret_key']); $merchant->appendChild($xml->createElement('md5'))->appendChild($xml->createTextNode($sign)); break; case "sign": //    WMSigner //     ,      . $sign=wmsign($_SETTINGS['wmid'].$purse.$_REQUEST['account'].$_REQUEST['code']); $merchant->appendChild($xml->createElement('sign'))->appendChild($xml->createTextNode($sign)); break; } //     WebMoney,  POST $result=post($xml->saveXML(),"https://merchant.webmoney.ru/conf/xml/XMLTransConfirm.asp"); //   dom, ..    XML  $dom=new domDocument; $dom->loadXML($result); if(!$dom) die("  XML"); $data=simplexml_import_dom($dom); //    (retval -  , 0    ),      . if($data->retval!=0) { echo "ErrorтДЦ".$data->retval.": ".$data->userdesc."\n\n"; ?> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <form method="post" action=""> <input type="hidden" name="confirmation" value="1"> <?=(!$_POST['code'])?' ,   <br />':''?> <input type="<?=(!$_POST['code'])?'text':'hidden'?>" name="code" value="<?=$_POST['code'];?>"> <input type="hidden" name="account" value="<?=$_POST['account']?>"> <input type="hidden" name="purse" value="<?= $_REQUEST['purse'] ?>"> <input type="submit" value=" ."> </form> </body> </html> <? } else { //     . echo "  "; } } 


рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ X20 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреБрдЧрддрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдЙрдбрд╝рд╛рди рднрд░реАред рдпрд╛
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реАрдПрдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЯреБрдП рдореЗрдВ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреИрд╕рд╛ рдирд╣реАрдВ рд╣реИ

рдпрд╛
рд╡реЗрдмрдордиреА рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗ рд╕рдВрджреЗрд╢: рдлрд┐рд▓рд╣рд╛рд▓ рдЖрдкрдХреЗ рд╡рд┐рдХреНрд░реЗрддрд╛ рдиреЗ рднреБрдЧрддрд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдмрд╛рдж рдореЗрдВ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред


рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЦрд╛рддреЗ рдореЗрдВ рдкреИрд╕рд╛ рд╣реИ, рднреБрдЧрддрд╛рди рдирд┐рд▓рдВрдмрд┐рдд рдирд╣реАрдВ рд╣реИред рдЕрдм рдореИрдВ рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ WM рд╕реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ X20 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░рдг рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди рд╣реИ, рдЬреЛ рд╡реНрдпрд╛рдкрд╛рд░реА рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдмрдЯреБрдП рд╕реЗ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рд╣реИ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк WM рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рднреБрдЧрддрд╛рди рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рднреБрдЧрддрд╛рди рд░рд╛рд╢рд┐ + 0.8% рдХрдореАрд╢рди + рдлрд┐рдХреНрд╕реНрдб рдХрдореАрд╢рди рд╡реЙрд▓реЗрдЯ рдкрд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди WM рдЦрд╛рддреЗ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ

X20 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рд╡рд░рдг
WMSigner
X20 рднреБрдЧрддрд╛рди рдбреЗрдореЛ
рдСрдлрд╝рд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдореЗрдВ X20 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реАрдбрд┐рдпреЛ
рд╡реНрдпрд╛рдкрд╛рд░реА рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрджрд╛рд╣рд░рдг

UPD рдЬрдм USSD \ SMS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди рдЪрд╛рд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - 0.9 WMR, 0.04 WMZ, 0.03 WME, 0.25 WMUред

Source: https://habr.com/ru/post/In121182/


All Articles