日本円をNEM換算して任意のNEMアドレスに送信する、NEM Wallet用QRコードを生成するPHP。

2023年05月29日 12時00分 正午の月齢:9.8  月名:十日月  潮汐:長潮 月齢:9.8[十日月] 潮汐:長潮
10か月前に投稿 | 暗号資産(仮想通貨) | コメントはありません

6分ぐらいで読めます。

4年前に下書きして放置していた書きかけの記事を、なぜかこのタイミングで書き上げることにしましたー。

2021年3月に実施されたNEM(XEM)の大型アップデート「カタパルト」により、新プラットフォームの「Symbol」に主流が移りました。

当初から「シンボル」っていう名前がダサくて魅力を感じなかったんですよね。名前が発表されたときのガッカリ感は今でも覚えています。名前は大事なのです。「PayPay(ペイペイ)」や「まいどプラス」なんて、絶対使う気にならないもん。

しかも、シンボルは2023年5月時点でネムより安い価格で取引されています。ダメダメですやん。

そんな感じで今でもネム狂信者なのですが、4年前に作っていて放置していたネム取引用のツールをなんとなく公開してみますね。

日本円(JPY)の金額を入力すると、何XEMになるか計算して、NEM Walletで取引するためのQRコードを表示します。ZaifのAPIからNEMの価格を取得しています。

ハズカシイけどこんなソース。

<!DOCTYPE html>

<html lang="ja">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="shortcut icon" href="https://susu.cc/test/nemicon.ico" type="image/x-icon">
<title>NEM請求用QRコード(JPY to NEM)</title>
</head>

<body>

<header>
<form action = "jtnx.php" method = "post">
<table>
<tr><td nowrap="nowrap">Price : </td><td><input type="number" name="price" step="any" autofocus> JPY</td></tr>
<tr><td nowrap="nowrap">Message : </td><td><input type="text" name="message" style="width:200px; max-width:90%;"></td></tr>
<tr><td nowrap="nowrap">Address : </td><td><input type="text" name="address" style="width:200px; max-width:90%;"></td></tr>
</table>
<p><input type = "submit" value ="送信"></p>
</form>
</header>

<section>
<?php
//フォームデータ受け取り
if (empty($_POST['price']) || ($_POST['price']) == 0){ //空っぽや000などのときは入力をうながす
echo '<div>';
echo '<p>Price欄に金額(JPY)を入力してネ。</p>';
echo '</div>';
}
else{

//NEM価格の取得
$url = 'https://api.zaif.jp/api/1/ticker/xem_jpy';
$json = mb_convert_encoding(file_get_contents($url), 'UTF-8','ASCII,JIS,UTF8,EUC-JP,SJIS-WIN,SJIS');
$json_arr = json_decode($json,true);
if ($json_arr === NULL) {
echo '0';
}
else{
$vwap = $json_arr['vwap'];
echo '<div><p>1 XEM = ' . $vwap .' JPY</p></div>';
}

//JPYをNEMに換算
if (($_POST['price'] < 0)) {
$price = $_POST['price'] * -1;//マイナスの数値もプラスにしてしまう
}
else{
$price = $_POST['price'] * 1;//01などの数字から前0を落とす(いらないかも)
}
$amount = round($price / $vwap,5);//量の計算

$address = $_POST['address'];//送信先NEMアドレス
if (empty($address)) {
$address = "NAMEKOKIDITOSYABXYBJ5P2J6HIN7CFAMKFN2R7B";//NEMアドレスが空白なら煤のものに…
}
else {
$address = $_POST['address'];
}

$xamount = $amount * 1000000;//μXEMに換算
$message = $_POST['message'];
$rawurl = '{"v":2,"type":2,"data":{"addr":"'.$address.'","amount":'.$xamount.',"msg":"'.$message.'","name":"NEMpay"}}';

echo '<div>';
echo '<p>'.$price.' JPY = '.$amount.' XEM</p>';
echo '<p style="word-break:break-all;">「'.$address.'」あてに「'.$amount.' XEM」を送信するQRコードです。</p>';
echo '<p style="text-align:center;"><img src="https://chart.apis.google.com/chart?chs=300x300&cht=qr&chld=H&chl=', rawurlencode($rawurl), '" alt="'.$amount.'XEM to '.$address.'" title="'.$amount.'XEM to '.$address.'"></p>';//エラー訂正レベル・高に設定(chld=H)
echo '</div>';
}
?>
</section>

</body>

</html>

もしNEMアドレス欄が空白なら、ボクがいくつか持っているアドレスのうちのひとつ「なめこアドレス」(NAMEKOで始まるから)に送られるようにしています。いひひ。

「これでネムを使って簡単に決済ができるゾ。なんか商売に使えそう。」と思っていたところ、新型コロナウイルスのせいで状況が変わって、一気にQRコード決済や電子マネー決済が普及してしまったんですよー。で、ずっと放置していたっていうワケ。

NEM投げ銭

NEM WalletからQRコードを読んでね。1口100円でございます。

12.70196XEM to NAMEKOKIDITOSYABXYBJ5P2J6HIN7CFAMKFN2R7B

古い記事・新しい記事

古い記事 [2021年04月29日]
新しい記事

コメントはありません »

[RSS on this post] [TrackBack URI]

コメントをどうぞ

Translate »