<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>折腾 on 阿珏酱のBlog</title>
    <link>https://zh.moejue.cn/ja/tags/%E6%8A%98%E8%85%BE/</link>
    <description>Recent content from 阿珏酱のBlog</description>
    <generator>Hugo</generator>
    <language>ja</language>
    
    <managingEditor>xxx@example.com (MoeJue)</managingEditor>
    <webMaster>xxx@example.com (MoeJue)</webMaster>
    
    <copyright>本ブログのすべての文書は、特に指定されていない限り、BY-NC-SAライセンスに従っています。引用の際は出典を明記してください！</copyright>
    
    <lastBuildDate>Sun, 02 Nov 2025 10:12:27 +0000</lastBuildDate>
    
    
    <atom:link href="https://zh.moejue.cn/ja/tags/%E6%8A%98%E8%85%BE/index.xml" rel="self" type="application/rss&#43;xml" />
    

    
    

    <item>
      <title>阿珏のBlog の国際化への道</title>
      <link>https://zh.moejue.cn/ja/posts/291/</link>
      <pubDate>Sun, 02 Nov 2025 10:12:27 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/291/</guid>
      <description>
        <![CDATA[<h1>阿珏のBlog の国際化への道</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>最近、個人ブログに「大改修」を施しました。
単一言語バージョンから<strong>多言語サイト</strong>（簡体字中国語、繁体字中国語、英語、日本語）にアップグレードし、
その全プロセスを自動化しました。💪</p>
<p>主な内容は以下の通りです。</p>
<ul>
<li>メインサイトの記事を自動同期</li>
<li>コンテンツを自動AI翻訳</li>
<li>多言語サイトの自動構築とデプロイ</li>
</ul>
<hr>
<h2 id="なぜ-hugo-を選んだのか">
<a class="header-anchor" href="#%e3%81%aa%e3%81%9c-hugo-%e3%82%92%e9%81%b8%e3%82%93%e3%81%a0%e3%81%ae%e3%81%8b"></a>
なぜ Hugo を選んだのか？
</h2><p>それは、その自信に満ちたスローガンがあったからです。</p>
<blockquote>
<p>“The world’s fastest framework for building websites.”</p>
</blockquote>
<p>—— この一言で、これに決めました 😆。</p>
<p>しかし、私は「一つのテーマで多言語を切り替える」という伝統的な方法ではなく、
<strong>各言語に独立したテーマ</strong>を持たせることにしました。
これにより、各言語バージョンが独自のデザインとレイアウトスタイルを保持し、
真に「文化的なローカライゼーション」を実現できます。</p>
<hr>
<h2 id="設計目標と制約-">
<a class="header-anchor" href="#%e8%a8%ad%e8%a8%88%e7%9b%ae%e6%a8%99%e3%81%a8%e5%88%b6%e7%b4%84-"></a>
設計目標と制約 🎯
</h2><ul>
<li><strong>言語</strong>: 簡体字中国語、繁体字中国語、英語、日本語をサポートし、将来的に拡張可能。</li>
<li><strong>テーマ</strong>: 各言語に最適な Hugo テーマを使用し、無理に再利用しない。</li>
<li><strong>コンテンツ同期</strong>: 全言語で一つのコンテンツリポジトリを共有し、必要に応じて翻訳。</li>
<li><strong>デプロイ戦略</strong>: 各言語を独立して構築・公開し、異なるブランチやドメインにデプロイ可能。</li>
<li><strong>カスタムページ</strong>: 「友だちリンク」、「書斎」、「アーカイブ」などのページは、多言語で一貫した体験を維持する。</li>
</ul>
<hr>
<h2 id="多言語設定戦略-">
<a class="header-anchor" href="#%e5%a4%9a%e8%a8%80%e8%aa%9e%e8%a8%ad%e5%ae%9a%e6%88%a6%e7%95%a5-"></a>
多言語設定戦略 🧩
</h2><p>各言語用に個別の設定ファイルを用意しました。
<code>config/&lt;lang&gt;.toml</code> で、主に以下の役割を担います。</p>
<ol>
<li>テーマの指定（例: <code>theme = &quot;PaperMod&quot;</code>）。</li>
<li>その言語固有の <code>title</code> / <code>description</code> / <code>keywords</code> の定義。</li>
<li>異なるテーマのナビゲーション構造に合わせるためのメニュー設定 <code>[[params.menu]]</code> の上書き。</li>
<li>全体的な視覚的一貫性を保証するためのカスタムスタイルの注入。</li>
</ol>
<p>この構造は非常に明確で、将来的にさらに多くの言語バージョンを拡張するのにも便利です。</p>
<hr>
<h2 id="github-actions-自動デプロイマトリックス-">
<a class="header-anchor" href="#github-actions-%e8%87%aa%e5%8b%95%e3%83%87%e3%83%97%e3%83%ad%e3%82%a4%e3%83%9e%e3%83%88%e3%83%aa%e3%83%83%e3%82%af%e3%82%b9-"></a>
GitHub Actions 自動デプロイマトリックス ⚙️
</h2><p>CI/CD 部分は完全に GitHub Actions に任せています。
<code>.github/workflows/hugo.yml</code> では、<strong>マトリックスビルド</strong>を使用し、
各言語を独立して構築・公開しています。</p>
        
        <hr><p>この記事は2025-11-02に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2025-11-02です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>幻想領域 画像アップローダー ヘルプ</title>
      <link>https://zh.moejue.cn/ja/posts/63/</link>
      <pubDate>Mon, 19 Mar 2018 11:56:29 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/63/</guid>
      <description>
        <![CDATA[<h1>幻想領域 画像アップローダー ヘルプ</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>インストールや使用中に問題が発生する方が多いため、ここにまとめます。それでも解決しない場合は、グループに参加して万能なメンバーに質問してください。</p>
<h2 id="認証コードが表示されない">
<a class="header-anchor" href="#%e8%aa%8d%e8%a8%bc%e3%82%b3%e3%83%bc%e3%83%89%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84"></a>
認証コードが表示されない
</h2><ol>
<li>サーバーがGDグラフィックライブラリをサポートしているか確認してください。</li>
<li>サーバーのWEB環境を確認してください。</li>
</ol>
<ul>
<li>Apache：プログラムがサブディレクトリにインストールされている場合、プログラムのルートディレクトリにある<code>.htaccess</code>ファイルを変更してください。</li>
</ul>
<p>&lt;IfModule mod_rewrite.c&gt;
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Rewritebase /あなたのサブディレクトリ名/index.php
RewriteRule ^(.*)$ /あなたのサブディレクトリ名/index.php?/$1 [L]
</IfModule></p>
<ul>
<li>Nginx：設定ファイル<code>nginx-conf</code>を見つけ、<code>location /</code>セクションに以下の内容を追加・変更してください。</li>
</ul>
<pre tabindex="0"><code>try_files $uri $uri/ /index.php?$query_string;
</code></pre><p>またはこちら</p>
<pre tabindex="0"><code>if (!-d $request_filename){
    set $rule_0 1$rule_0;
}
if (!-f $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = &#34;21&#34;){
    rewrite ^/(.*)$ /index.php?/$1 last;
}
</code></pre><ul>
<li>IISのURLリライトはApacheと同様です。</li>
<li>宝塔パネル（BT Panel）を使用している場合は、既存のthinkPHPのURLリライト設定を使用してください。</li>
</ul>
<p><strong>メール送信の失敗</strong></p>
<ol>
<li>まず、ポート25がブロックされていないか確認してください。ブロックされている場合は、ホスティングプロバイダーに有効化を依頼してください（有効化できない場合はサーバーを変更してください）。</li>
<li>登録時の認証をオフにするか、次のバージョンの更新をお待ちください（注：ポートの変更は無意味です。ポート465はSSLサポートが必要です）。</li>
</ol>
<h2 id="データインターフェースの異常">
<a class="header-anchor" href="#%e3%83%87%e3%83%bc%e3%82%bf%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%95%e3%82%a7%e3%83%bc%e3%82%b9%e3%81%ae%e7%95%b0%e5%b8%b8"></a>
データインターフェースの異常
</h2><ul>
<li>URLリライトのリダイレクトに失敗しています。上記を参考にもう一度設定してください。</li>
<li>Nginxサーバーの場合、<code>/framework/core/Framework.php</code>の51行目から53行目をコメントアウトまたは削除してください。具体的なコードは以下の通りです（通常、この問題はApacheサーバーでは発生せず、Nginxサーバーでのみ発生します）。</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-php" data-lang="php"><span style="display:flex;"><span><span style="color:#66d9ef">if</span> ($path <span style="color:#f92672">!=</span> <span style="color:#e6db74">&#39;&#39;</span>) {
</span></span><span style="display:flex;"><span>     $path <span style="color:#f92672">=</span> <span style="color:#a6e22e">strstr</span>(<span style="color:#a6e22e">trim</span>($_SERVER[<span style="color:#e6db74">&#39;REQUEST_URI&#39;</span>],<span style="color:#e6db74">&#39;/&#39;</span>),$path);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h2 id="画像のアップロード失敗">
<a class="header-anchor" href="#%e7%94%bb%e5%83%8f%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e5%a4%b1%e6%95%97"></a>
画像のアップロード失敗
</h2><p>アップロード失敗時のヒント：アップロード中にちょっとした問題が発生しました。コントローラーを開いて原因を確認してください！</p>
        
        <hr><p>この記事は2018-03-19に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2025-09-06です</p>]]>
      </description>
      
        <category>教程</category>
      
    </item>
    
    

    <item>
      <title># ポータブルモニターを自作する方法</title>
      <link>https://zh.moejue.cn/ja/posts/255/</link>
      <pubDate>Sun, 13 Apr 2025 05:55:01 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/255/</guid>
      <description>
        <![CDATA[<h1># ポータブルモニターを自作する方法</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <h3 id="ポータブルディスプレイを自作する方法">
<a class="header-anchor" href="#%e3%83%9d%e3%83%bc%e3%82%bf%e3%83%96%e3%83%ab%e3%83%87%e3%82%a3%e3%82%b9%e3%83%97%e3%83%ac%e3%82%a4%e3%82%92%e8%87%aa%e4%bd%9c%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95"></a>
ポータブルディスプレイを自作する方法
</h3><h3 id="はじめに">
<a class="header-anchor" href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab"></a>
はじめに
</h3><p>家には古いノートパソコンが1台あります。バッテリーはもうダメですが、他の部品はまだ正常に動作します。しかし、技術の進化は非常に速く、このノートパソコンはウェブサイトを閲覧する以外に、ほとんど使い道がありません。捨てるのはもったいないし、売っても大した値段にはなりません。そこで、これをポータブルディスプレイに改造することにしました。そうすれば、ノートパソコンやデスクトップPCに接続して、ゲームをしたり動画を見たりと、もう一働きさせることができます。ちなみに、ハードディスクはすでにポータブルハードディスクに改造済みです。</p>
<h3 id="材料の準備">
<a class="header-anchor" href="#%e6%9d%90%e6%96%99%e3%81%ae%e6%ba%96%e5%82%99"></a>
材料の準備
</h3><ul>
<li>廃棄するディスプレイ</li>
<li>LEDスクリーン駆動ボード</li>
<li>スクリーンケーブル</li>
<li>キーパッド</li>
<li>インバーターボード</li>
<li>電源 (12V 5A)</li>
</ul>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_142914_04_13_2025.jpg" alt="IMG_20250404_142914_04_13_2025"></p>
<p>主な材料はこれだけです。通販サイトですぐに購入でき、価格も高くありません。電源は父のネックマッサージャーから直接取り外したもので、また一つ節約できました。</p>
<h3 id="改造プロセス">
<a class="header-anchor" href="#%e6%94%b9%e9%80%a0%e3%83%97%e3%83%ad%e3%82%bb%e3%82%b9"></a>
改造プロセス
</h3><ol>
<li>ノートパソコンのディスプレイを分解し、スクリーンを取り出します。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_142647_04_13_2025.jpg" alt="IMG_20250404_142647_04_13_2025"> <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_142641_04_13_2025.jpg" alt="IMG_20250404_142641_04_13_2025"> もしお使いのスクリーンに対応する駆動ボードがわからない場合は、スクリーンの裏にある型番などの情報を写真に撮って販売店に送れば、それに合った駆動ボードを推薦してくれます。もちろん、電子回路に詳しい方なら、自分で回路図を設計して駆動ボードを自作することもできます。</li>
<li>配線し、ホットボンドで固定します。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_155901_04_13_2025.jpg" alt="IMG_20250404_155901_04_13_2025"> ps: ホットボンドは貧乏人の3Dプリンターですね。</li>
<li>電源を入れてテストします。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_150154_04_13_2025.jpg" alt="IMG_20250404_150154_04_13_2025"> 私は手間を省くため、販売店に予め対応するファームウェアを書き込んでもらいました。</li>
<li>信号を入力します。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_151208_04_13_2025.jpg" alt="IMG_20250404_151208_04_13_2025"></li>
<li>キーパッドの機能調整をテストします。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_151318_04_13_2025.jpg" alt="IMG_20250404_151318_04_13_2025"></li>
<li>段ボールでケースを作ります。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_173602_04_13_2025.jpg" alt="IMG_20250404_173602_04_13_2025"> どうやら私には廃材の段ボールでケースを作る才能がそこそこあるようです。見た目が悪すぎるのが心配で、壁紙シールを貼ってみました。家に3Dプリンターがある方は、直接ケースを設計してプリントすれば、もっと見栄えが良くなるでしょう。</li>
</ol>
<h3 id="完成品">
<a class="header-anchor" href="#%e5%ae%8c%e6%88%90%e5%93%81"></a>
完成品：
</h3><p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250413_104214_04_13_2025.jpg" alt="IMG_20250413_104214_04_13_2025"> 前面はホットボンドで接着したせいで、ちょっと見るに堪えない状態になってしまいました。</p>
        
        <hr><p>この記事は2025-04-13に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2025-04-13です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>ESP8266-NodeMCU開発ボードを使って、私のQQアバターを表示してみる。</title>
      <link>https://zh.moejue.cn/ja/posts/200/</link>
      <pubDate>Sun, 16 Jun 2024 12:50:42 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/200/</guid>
      <description>
        <![CDATA[<h1>ESP8266-NodeMCU開発ボードを使って、私のQQアバターを表示してみる。</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>ええ、自分でESP8266開発ボードのファームウェアを書くと言っていた私が戻ってきました。20年前に約束した通り、今日、その願いを叶えに戻ってきました。<a href="https://www.cnblogs.com/Ajue/p/18202561">ESP8266串口WiFi模块 - WiFi杀手</a></p>
<p>今日はOLEDディスプレイも接続します。今回購入したのは4ピンのOLED（128*64）で、カラー表示には対応していません。</p>
<h3 id="nodemcu開発ボード">
<a class="header-anchor" href="#nodemcu%e9%96%8b%e7%99%ba%e3%83%9c%e3%83%bc%e3%83%89"></a>
NodeMCU開発ボード
</h3><p>NodeMCUはオープンソースのIoTハードウェア開発ボードです。WIFI機能をサポートし、Arduino開発ボードと非常に似た使用方法であるため、近年、世界中のメイカーたちからますます人気を集めています。NodeMCUのサイズはArduino Nanoに似ています。Arduinoチームによって開発されたものではありませんが、Arduino IDEを使用して開発することも可能です。</p>
<p>あらゆるものがインターネットに接続されるIoTの基盤として、まずIoT制御ボードのコストが高すぎてはいけません。高価なIoT制御コンポーネントは、プロジェクトのコスト管理に不利であり、多くのメイカー愛好家が学習し使用する上でも不利です。この点において、NodeMCUはRaspberry PiやArduinoファミリーのIoTプラットフォームなどよりも優位性があります。</p>
<p>注意深い方はすでにお気づきかもしれませんが、私の開発ボードはESP8266-NodeMCUと呼ばれています。しかし、他のウェブサイトや資料では、ESP8266と表記されたり、NodeMCUと表記されたりすることがあります。では、ESP8266とNodeMCUの間にはどのような関係があるのでしょうか？</p>
<p>ESP8266はチップ（鉄製のケースに収められた四角いもの）であり、NodeMCUはESP8266チップを核とした開発ボードです。下の図に示す通りです。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/06/16/78350c19ly8hu4vo3lpljj21hc140n7w.jpg" alt=""> 小さなチップのピンをコンピューターに接続し、プログラムをアップロードするなどの操作を行うのは非常に困難であるため、ESP8266チップを中心とした様々な開発ボードが誕生しました。NodeMCUもこれらの開発ボードの一つです。</p>
<p>NodeMCU開発ボード上の2列のピンヘッダーは、ESP8266チップのピンに接続されています。開発ボード上の2列のピンヘッダーがあれば、デュポン線を使ってチップのピンを実験回路に簡単に接続できます。NodeMCU開発ボードにはUSBポートと電圧変換回路も搭載されています。これらは私たちに大きな利便性を提供します。USBデータケーブル1本で、ESP8266への給電とプログラムのアップロードを簡単に実現できます。もちろん、NodeMCU開発ボードの回路機能はこれだけではありませんが、これ以上は深掘りしません。</p>
<h3 id="ドライバーのインストール">
<a class="header-anchor" href="#%e3%83%89%e3%83%a9%e3%82%a4%e3%83%90%e3%83%bc%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
ドライバーのインストール
</h3><p>以前にも開発ボードのドライバーインストールについては説明しましたが、十分詳細ではありませんでした。</p>
<p>現在市販されているESP8266ドライバーには様々な種類があり、同じNodeMCU開発ボードであってもドライバーが異なる場合があります。現在主流なのはCH340とCP210Xのドライバーです。</p>
<p>ドライバーのダウンロードは、チップメーカーの公式サイトから直接行ってください。 CP210X：<a href="https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers">https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers</a> CH340C：<a href="https://www.wch.cn/downloads/CH341SER_EXE.html">https://www.wch.cn/downloads/CH341SER_EXE.html</a></p>
<p>ご自身のプラットフォームに適したドライバーインストーラーをダウンロードしてください。ご自身のシリアルチップのモデルがドライバーのサポート範囲内にあるか、よく確認する必要があります。</p>
<h3 id="自分の開発ボードに必要なドライバーを確認する方法">
<a class="header-anchor" href="#%e8%87%aa%e5%88%86%e3%81%ae%e9%96%8b%e7%99%ba%e3%83%9c%e3%83%bc%e3%83%89%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e3%83%89%e3%83%a9%e3%82%a4%e3%83%90%e3%83%bc%e3%82%92%e7%a2%ba%e8%aa%8d%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95"></a>
自分の開発ボードに必要なドライバーを確認する方法
</h3><ol>
<li>直接見る。下の図の縦長の黒い長方形がUSB-シリアル変換チップです。その上にチップのモデル名が記載されています。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/06/16/78350c19ly8hu4voc3xefj21hc140n7w.jpg" alt=""></li>
<li>購入した販売店に尋ねる。</li>
</ol>
<h3 id="ディスプレイのはんだ付け">
<a class="header-anchor" href="#%e3%83%87%e3%82%a3%e3%82%b9%e3%83%97%e3%83%ac%e3%82%a4%e3%81%ae%e3%81%af%e3%82%93%e3%81%a0%e4%bb%98%e3%81%91"></a>
ディスプレイのはんだ付け
</h3><p>はんだ付けを間違えないでください。間違えるとチップが焼損します。OLEDの配線：</p>
<ul>
<li>GND - GND</li>
<li>VCC - VCC</li>
<li>SCL - GPIO5(D1)</li>
<li>SDA - GPIO4(D2)</li>
</ul>
<p>はんだごて加熱中 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/06/16/78350c19ly8hu4voij5a5j21hc1404dj.jpg" alt=""></p>
<p>以下がはんだ付け完了したものです。配線に注意してください。この順番であるとは限りません。名称を確認してください。 <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/06/16/78350c19ly8hu4voof65aj21hc140dqi.jpg" alt=""></p>
<h3 id="arduino-ideのインストール">
<a class="header-anchor" href="#arduino-ide%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
Arduino IDEのインストール
</h3><ol>
<li>
<p>Arduino IDEをダウンロード <a href="https://www.arduino.cc/en/software">https://www.arduino.cc/en/software</a></p>
</li>
<li>
<p>インストール。インストールまで私が教える必要がありますか？</p>
</li>
<li>
<p>設定。「ツール」-「ボード」-「ボードマネージャー」をクリックし、設定でボードアドレスを記述します：<a href="http://arduino.esp8266.com/stable/package_esp8266com_index.json">http://arduino.esp8266.com/stable/package_esp8266com_index.json</a> その後、対応するサポートライブラリファイルが自動的にダウンロードされます。この間、ネットワークの安定性を確保する必要があります。</p>
</li>
<li>
<p>開発ボードを選択: NodeMCU1.0(ESP-12EModule)</p>
</li>
<li>
<p>ポートを選択: コンピューターのデバイスマネージャーで開発ボードのCOMポートを見つけます。</p>
</li>
</ol>
<h3 id="arduinoコード">
<a class="header-anchor" href="#arduino%e3%82%b3%e3%83%bc%e3%83%89"></a>
Arduinoコード
</h3><p>時々、私が長々と説明するよりも、直接コードを見せる方が手っ取り早いと感じます。あなたもきっと、私の無駄話を聞くよりも直接コードを見たいと思っているでしょう。私も可能な限りコードにコメントを付けました（Arduinoコードの記述はC/C++言語の規範に従ってください）。</p>
<p>以下の例では、WiFi接続にはライブラリを使用しています。初回接続時には、ESP8266が発信するWiFiに携帯電話で接続し、ネットワーク設定を行う必要があります。画面への書き出しにはライブラリを使用しており、中国語の直接書き出しをサポートしています。</p>
<ol>
<li>これは、WiFi接続と画面への画像表示の簡単な例です。</li>
</ol>
<pre tabindex="0"><code>#include &lt;Adafruit_GFX.h&gt;
#include &lt;Adafruit_SSD1306.h&gt;
#include &lt;ESP8266WiFi.h&gt;
#include &lt;NTPClient.h&gt;
#include &lt;WiFiManager.h&gt;
#include &lt;U8g2lib.h&gt;

#define SDA 4  // SDA引脚，默认gpio4(D2)
#define SCL 5  // SCL引脚，默认gpio5(D1)

Adafruit_SSD1306 oled(128, 64, &amp;Wire,-1);   //OLED 屏幕实例化
WiFiUDP ntpUDP;

NTPClient timeClient(ntpUDP,&#34;pool.ntp.org&#34;, 8*3600, 60000);

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /*clock=*/SCL, /*data=*/SDA, /*reset=*/U8X8_PIN_NONE);           // 选择显示屏幕

// 只执行一次
void setup() {

  u8g2.begin();            // 初始化
  u8g2.enableUTF8Print();  // UTF8允许
  u8g2.setFont(u8g2_font_wqy12_t_gb2312b); //字体大小   u8g2_font_wqy15_t_gb2312b  

  // 初始化屏幕
  OLED_Init();

  OLED_Showchin(1,13,&#34;正在连接WiFi....&#34;,0);
  WiFiManager wifiManager;
  wifiManager.autoConnect(&#34;ESP8266&#34;);

  OLED_Showchin(1,27,&#34;WiFi连接成功！&#34;,0);
  OLED_Showchin(1,41,&#34;名称： &#34; + WiFi.SSID(),0);
  OLED_Showchin(1,55,&#34;IP: &#34; + WiFi.localIP().toString(),1);

  // 获取时间
  timeClient.begin();
  u8g2.setFont(u8g2_font_wqy15_t_gb2312b); //字体大小   u8g2_font_wqy15_t_gb2312b  

  OLED_Showchin(1,13,&#34;宁小建&#34;,0);
  OLED_Showchin(1,27,&#34;hhhhhhhhhhhh&#34;,0);
  OLED_Showchin(1,55,&#34;大傻逼哈哈哈&#34;,1);

  timeClient.update();
  OLED_Showchin(1,20,&#34;当前北京时间: &#34;,0);
  OLED_Showchin(1,41,timeClient.getFormattedTime(),1);
  delay(1000);
  OLED_img();
}

// 重复执行程序
void loop() {
  // 更新时间
  // timeClient.update();
  // OLED_Showchin(1,27,&#34;当前北京时间: &#34;,0);
  // OLED_Showchin(1,41,timeClient.getFormattedTime(),0);
}

// 打印输出到屏幕（支持中文）
void OLED_Showchin(uint8_t x, uint8_t y, String string, uint8_t boot) {
  u8g2.setCursor(x, y);  //设置显示坐标
  u8g2.print(string);  // 指定缓存区需要打印的字符串
  u8g2.sendBuffer();          // 将定位信息发送到缓冲区
  if(boot == 1){
    delay(1000);
    u8g2.clearBuffer();     // 清除缓存，其实初始化里有清除，循环时一定要加上
  }
}

// 屏幕初始化
void OLED_Init() {
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);     //&#34;SSD1306_SWITCHCAPVCC&#34;表示显示器为OLED ,&#34;0x3C&#34;为OLED屏幕默认通信地址
  oled.setTextColor(WHITE);//开像素点发光
  oled.clearDisplay();//清屏
}

// 输出屏幕
void OLED_ShowString(uint8_t x, uint8_t y, uint8_t font_size, String string) {
  oled.setTextSize(font_size);    //设置字体尺寸 (&gt;=1)
  oled.setCursor(x, y);           //设置显示坐标
  oled.println(string);           //显示内容
  oled.display();                 //开启显示
}

// 绘画
void OLED_img() {
  //  图片数据
    const unsigned char gImage_1[518] = { 0X00,0X01,0X40,0X00,0X40,0X00,
  0X00,0X40,0X00,0X00,0X00,0X3E,0XF0,0X00,0X00,0X80,0X00,0X00,0X00,0X1F,0XE0,0X00,
  0X00,0X00,0X00,0X00,0X00,0X06,0XB0,0X00,0X01,0X00,0X00,0X00,0X00,0X03,0XF8,0X00,
  0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XDC,0X00,
  0X04,0X00,0X00,0X00,0X00,0X01,0XC0,0X00,0X0E,0X00,0X00,0X00,0X00,0X00,0X80,0X00,
  0X06,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X10,0X00,0X00,0X00,
  0X08,0X00,0X00,0X00,0X0E,0X00,0X00,0X00,0X08,0X00,0X00,0X00,0X8F,0X00,0X00,0X00,
  0X00,0X00,0X02,0X02,0X47,0X00,0X00,0X00,0X00,0X00,0X01,0X10,0X63,0X80,0X00,0X00,
  0X00,0X00,0X01,0XC9,0X73,0XC0,0X00,0X00,0X00,0X00,0X00,0XE4,0X79,0XE0,0X00,0X00,
  0X00,0X02,0X00,0XFA,0XF9,0XE0,0X00,0X00,0X10,0X02,0X00,0X7D,0X8C,0XF0,0X00,0X00,
  0X10,0X03,0X01,0X7E,0X90,0XF1,0X80,0X00,0X10,0X01,0X20,0XFD,0X1C,0X7B,0XE0,0X00,
  0X00,0X01,0XA0,0X7D,0X03,0X7B,0X20,0X00,0X10,0X01,0XD8,0XFF,0X8B,0X7E,0X30,0X00,
  0X00,0X01,0XFC,0X7F,0X83,0XB6,0X10,0X00,0X00,0X00,0XF7,0XFF,0XC7,0XBE,0X10,0X00,
  0X00,0X01,0X8F,0XFF,0XE3,0XF6,0X10,0X00,0X01,0X01,0X4F,0XFF,0XFF,0XFF,0X10,0X00,
  0X00,0X01,0XCF,0XFF,0XFF,0XDF,0X10,0X00,0X00,0X01,0XC3,0XFF,0XFF,0XDF,0X70,0X00,
  0X01,0X03,0XE3,0XFF,0XFF,0XDF,0XE0,0X00,0X04,0X01,0XE7,0XFF,0XFF,0XDF,0XE4,0X00,
  0X07,0X00,0XFB,0XFF,0XFF,0XDF,0XC0,0X00,0X07,0X00,0XFB,0XFF,0XFF,0XFE,0X00,0X00,
  0X13,0X00,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X01,0X20,0X3F,0XFF,0XFF,0XFC,0X00,0X00,
  0X00,0X00,0X3F,0XFF,0XFF,0XF8,0X00,0X0B,0X00,0X00,0X1F,0XFE,0X0F,0XF8,0X00,0X1F,
  0X00,0X00,0X1F,0XF8,0X6F,0XF0,0X00,0XFF,0X00,0X00,0X1F,0XE1,0XFF,0XF0,0X05,0XFF,
  0X00,0X00,0X0F,0XF3,0XFF,0XE0,0X03,0XFF,0X00,0X40,0X0F,0XF7,0XFF,0XC0,0X07,0XFF,
  0X00,0X00,0X07,0XFF,0XFF,0X80,0X07,0XFF,0X08,0X00,0X07,0XFF,0XFF,0X00,0X0F,0XFF,
  0X00,0X00,0X23,0XFF,0XFE,0X00,0X0F,0XFF,0X00,0X08,0X60,0XFF,0XFE,0X00,0X0F,0XFF,
  0X00,0X40,0X20,0X3F,0XFE,0X00,0X1F,0XFF,0X00,0X00,0X10,0X0B,0XFF,0X80,0X1F,0XFF,
  0X00,0X00,0X40,0X00,0X3F,0X00,0X1F,0XFF,0X00,0X00,0X10,0X00,0X3F,0X00,0X1F,0XFF,
  0X20,0X00,0X02,0X00,0X3F,0X00,0X3F,0XFF,0X00,0X00,0X00,0X00,0X7F,0X80,0X3F,0XFF,
  0X00,0X00,0X00,0X10,0X7F,0X80,0X7F,0XFF,0X00,0X00,0X00,0X80,0X7F,0X80,0X7F,0XFF,
  0X10,0X00,0X00,0X00,0X7F,0X80,0XFF,0XFF,0X30,0X00,0X00,0X00,0X7F,0X80,0XFF,0XFF,
  0X10,0X10,0X00,0X00,0X7F,0XC1,0XFF,0XFF,0X00,0X00,0X00,0X00,0X7F,0XF3,0XFF,0XFF,
  0X00,0X00,0X01,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X04,0X3F,0XFF,0XFF,0XFF,
  0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X10,0X80,0X1F,0XFF,0XFF,0XFF,
  0X01,0X00,0X00,0X05,0X1F,0XFF,0XFF,0XFB,0X00,0X00,0X00,0X00,0X1F,0XF7,0XFF,0XFC,
  0X00,0X00,0X00,0X00,0X1F,0XFB,0XFF,0XFF,0X00,0X00,0X40,0X00,0X19,0XFF,0XFF,0XFF,
  };

  oled.clearDisplay();
  oled.drawBitmap(3, 1, gImage_1, 64, 64, WHITE);
  oled.display();
}
</code></pre><p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/06/16/78350c19ly8hu4vppewusj21hc140qb3.jpg" alt=""></p>
        
        <hr><p>この記事は2024-06-16に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2025-04-13です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>オープンソースでシンプルかつスタイリッシュな、酷狗のサードパーティ製クライアント V1.0.0 Beta</title>
      <link>https://zh.moejue.cn/ja/posts/225/</link>
      <pubDate>Sun, 03 Nov 2024 12:48:04 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/225/</guid>
      <description>
        <![CDATA[<h1>オープンソースでシンプルかつスタイリッシュな、酷狗のサードパーティ製クライアント V1.0.0 Beta</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p><img src="https://github.com/iAJue/MoeKoeMusic/raw/main/images/logo.png" alt="Logo"></p>
<h2 id="moekoe-music">
<a class="header-anchor" href="#moekoe-music"></a>
MoeKoe Music
</h2><p>オープンソースでシンプル、見た目も美しいKuGouのサードパーティクライアント<br>
<a href="https://github.com/iAJue/MoeKoeMusic/"><strong>🌎 GitHubリポジトリ</strong></a>  |  <a href="https://github.com/iAJue/MoeKoeMusic/releases"><strong>📦️ インストーラーをダウンロード</strong></a>  |  <a href="https://MoeJue.cn"><strong>💬 ブログを訪問</strong></a></p>
<p><img src="https://github.com/iAJue/MoeKoeMusic/raw/main/images/5.png" alt="images"></p>
<h2 id="はじめに">
<a class="header-anchor" href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab"></a>
はじめに
</h2><p>10年ほど前、ウェブ版QQを使っていた頃からKuGou Musicを使い始めました（もう10年来のファンです）。なので、この数年で集めた曲はすべてそこにあります。その後、NetEase Cloud MusicやQQ Musicも試してみましたが、KuGouのプレイリストをインポートしようとしても、結果は芳しくありませんでした。私が聴くのは主に日本のアニメのOPで、多くの曲が見つかりませんでした。</p>
<p>結局、KuGouに戻ってきました。しかし、Mac版のKuGouは時々再生できないことがありました。インターフェースはシンプルですが、それはそれで良い点です。ネットユーザーの勧めで、今はKuGouの<a href="https://t1.kugou.com/d2tBza3CSV2">コンセプト版</a>で音楽を聴いています。これは市場で数少ない、VIP曲を無料で聴ける音楽プレイヤーで、強くお勧めします。</p>
<p>私の自己紹介ページで、特に日本のアニメのOPを聴くのが大好きだと書きました。それをどう証明するか？（以前のウェブ版プレイリストも長年放置されていました）そうだ、自分で音楽プレイヤーを開発しよう、と。</p>
<h2 id="-特徴">
<a class="header-anchor" href="#-%e7%89%b9%e5%be%b4"></a>
✨ 特徴
</h2><ul>
<li>✅ Vue.js ファミリーを使用して開発</li>
<li>🔴 KuGouアカウントでのログイン（QRコード/携帯電話/アカウントでのログイン）</li>
<li>📃 歌詞表示をサポート</li>
<li>📻 毎日のおすすめ曲</li>
<li>🚫🤝 ソーシャル機能一切なし</li>
<li>🔗 公式サーバーに直接接続、サードパーティAPIは一切使用しません</li>
<li>✔️ 毎日VIPを自動で受け取り、ログインするだけでVIPに</li>
<li>🎨 テーマカラーの切り替え</li>
<li>👋 起動時の挨拶メッセージ</li>
<li>⚙️ マルチプラットフォーム対応</li>
<li>🛠 さらに多くの機能を開発中</li>
</ul>
<h2 id="todo-list">
<a class="header-anchor" href="#todo-list"></a>
Todo List
</h2><ul>
<li>[ ] 📺 MV再生をサポート</li>
<li>[ ] 🌚 Light/Dark Modeの自動切り替え</li>
<li>[ ] 👆 Touch Barをサポート</li>
<li>[ ] 🖥️ PWAをサポート、Chrome/Edgeのアドレスバー右側の ➕ をクリックしてPCにインストール可能</li>
<li>[ ] 🟥 Last.fm Scrobbleをサポート</li>
<li>[ ] 🎧 Mprisをサポート</li>
<li>[ ] ⌨️ カスタムショートカットキーとグローバルショートカットキー</li>
<li>[ ] 🤟 多言語対応</li>
<li>[ ] 📻 デスクトップ歌詞</li>
<li>[ ] ⚙️ システムアーキテクチャの最適化</li>
<li>[ ] 🎶 曲、プレイリスト/お気に入り、削除</li>
</ul>
<h2 id="-インストール">
<a class="header-anchor" href="#-%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
📦️ インストール
</h2><p>本プロジェクトの <a href="https://github.com/iAJue/MoeKoeMusic/releases">Releases</a> ページにアクセスしてインストーラーをダウンロードしてください。</p>
        
        <hr><p>この記事は2024-11-03に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2024-11-04です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>転生：ECサイトを構築する - 萌音ECサイトV1.0リリース</title>
      <link>https://zh.moejue.cn/ja/posts/203/</link>
      <pubDate>Wed, 02 Oct 2024 06:17:50 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/203/</guid>
      <description>
        <![CDATA[<h1>転生：ECサイトを構築する - 萌音ECサイトV1.0リリース</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>萌音シリーズのN+1番目のプロジェクトが来ましたね。これも実は数年間放置していたプロジェクトで、今回ようやく完成させることができました。</p>
<h5 id="まずはプロジェクトアドレス-httpsmoekoecn">
<a class="header-anchor" href="#%e3%81%be%e3%81%9a%e3%81%af%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9-httpsmoekoecn"></a>
まずはプロジェクトアドレス: <a href="https://MoeKoe.cn">https://MoeKoe.cn</a>
</h5><h4 id="なぜ私はプロジェクトを作り続けているのか">
<a class="header-anchor" href="#%e3%81%aa%e3%81%9c%e7%a7%81%e3%81%af%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%82%92%e4%bd%9c%e3%82%8a%e7%b6%9a%e3%81%91%e3%81%a6%e3%81%84%e3%82%8b%e3%81%ae%e3%81%8b"></a>
なぜ私はプロジェクトを作り続けているのか？
</h4><p>この質問はとても面白いですね。なぜ様々なプロジェクトを、しかもお金にならないものばかり作り続けているのか。私の以前のプロジェクトに触れたことのある方はご存知でしょうが、私はどんなプロジェクトも「自分が使う」という原則に基づいて制作しています。もちろん今回も例外ではありません。ずっと、どこかのプラットフォームで、持っているけれど使わず、捨てるには惜しい小物たちを売りたいと思っていました。同時に、面白くて楽しい製品を皆さんと共有したいとも思っています（将来的には私のIP製品も加わるかもしれません）。「最高の出来事や物を、最高のあなたと共有したい」という思いもありますし、「他人が持っているなら私も持つべきだ」という原則に基づいて、私も持たなければなりません。</p>
<p>もし私がただ小物を売りたいだけなら、なぜ直接淘宝や闲鱼のようなプラットフォームを使わないのでしょうか。一歩譲って、これらのプラットフォームを使わないとしても、既存のECシステムを自分で構築することもできます。今や市場には成熟していて使いやすいシステムが山ほどあります。なぜわざわざ自分で開発する必要があるのでしょうか？</p>
<p>一言で言えば、好きだからです。これは私の趣味で、創造することが好きで、面白いものやことをするのが好きなんです。私はただ生きているだけの凡人ではなく、すごくて面白い人間になりたい。もっと多くの面白い魂と出会いたい。「すごい」という私の定義は、技術がどれほど優れているか、お金をどれほど稼ぐかということではありません。挫折や困難に直面したときでも、笑顔で立ち向かい、楽観的であり続け、初心を忘れない人。そのような人を、私は「すごい人」と呼びたいのです。</p>
<p>新しいプロジェクトを発表する記事なのに、またしても口語体のブログになってしまいました、ハハハ。</p>
<h3 id="プロジェクト紹介">
<a class="header-anchor" href="#%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e7%b4%b9%e4%bb%8b"></a>
プロジェクト紹介
</h3><p>最近何をしているか？ピンクで可愛らしいもの、つまり二次元少女萌え系スタイルの魔法少女ECサイトを作っています。</p>
<blockquote>
<p>魔法少女のファンタジー世界へようこそ！二次元の無限の可能性を探る冒険の旅を始めましょう！これは二次元愛好家のために特別に作られたオンラインECサイトです。ここでは、最も輝く魔法のアイテム、最もキュートな変身コスチューム、そして豊富で多様な二次元関連商品を見つけることができます。可愛い萌えグッズに夢中な方も、クールなコレクターズアイテムがお好きな方も、二次元へのすべての愛と期待をここで満たすことができます！</p>
</blockquote>
<p>URLをクリックすると、目が覚めるような（ピンクの）感覚を覚えるでしょう。そうです、これこそ私が求めていたスタイルです。ピンクで可愛らしく、乙女心満載で、カワイイ感じ。これこそが私の個性を際立たせるのです。<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/10/02/78350c19ly8hu80pi6l1vj22bm1g2kjp.jpg" alt=""></p>
<h3 id="技術スタック">
<a class="header-anchor" href="#%e6%8a%80%e8%a1%93%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af"></a>
技術スタック
</h3><ul>
<li>Vue.js3</li>
<li>Vite</li>
<li>Pinia</li>
<li>Axios</li>
<li>Node.js</li>
<li>Express</li>
<li>Mysql</li>
<li>Nginx</li>
<li>フロントエンドとバックエンドの分離</li>
<li>MySQLスレッドプール</li>
</ul>
<p>Vue.jsのフルスタックは本当に素晴らしいですね。ネイティブで書く手間が省けます。現在、国際化プラグイン（i18n）はこのバージョンにはまだ搭載されていません。市販のUIライブラリがこのプロジェクトの私の位置付けや個性に直接合致しないため、既存のUIライブラリは使用せず、すべて自分で手書きしました。</p>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/10/02/78350c19ly8hu80vhmhh0j21ys1fqqv7.jpg" alt=""></p>
<h3 id="紹介">
<a class="header-anchor" href="#%e7%b4%b9%e4%bb%8b"></a>
紹介:
</h3><ul>
<li>仮想通貨USDTに対応（ウォレットアドレスを入力するだけで、自動で着金を監視。外部プログラム不要。監視システムは新規注文があると自動起動し、30分間新規注文がないと自動休眠し、リソース消費を削減）</li>
<li>Alipay対面決済に対応、即時着金、自動コールバック</li>
<li>ユーザー登録、ログイン、ログアウト、パスワード変更、アバター変更、商品レビューに対応</li>
<li>商品管理、商品カテゴリ管理に対応</li>
<li>注文管理、注文決済、注文発送、物流追跡に対応</li>
<li>商品注文データ分析に対応</li>
<li>全サイトレスポンシブデザイン</li>
<li>フロントエンドとバックエンドの分離</li>
<li>MySQLスレッドプール</li>
<li>システムの基本情報設定</li>
</ul>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/10/02/78350c19ly8hu80ywg8ntj21y21f2x6p.jpg" alt=""></p>
<p>最初のバージョンでは、基本的な機能と必要な機能のみを追加しました。新機能は設計段階で既に考慮されており、データベースとコードには予約がされています（そのため、あるボタンをクリックしても反応がない場合でも心配しないでください。その背後にはまだコードがないだけです）。これらは将来のバージョンで追加される予定です。現在、ECサイトでは物理的な商品の発送形式で販売していますが、将来的には仮想商品の販売も追加し、基本的に<a href="https://pay.MoeKoe.cn">萌音発券</a>の機能をすべて統合する予定です。</p>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/10/02/78350c19ly8hu80ynckudj21lc1fs7wh.jpg" alt=""></p>
<p>このプロジェクトの命名は「shop」ではなく「mall」としました。そのため、将来的には単なる店舗ではなく、ショッピングモールになる可能性があります。</p>
<h3 id="将来">
<a class="header-anchor" href="#%e5%b0%86%e6%9d%a5"></a>
将来:
</h3><ul>
<li>マルチテナントモード。ユーザーが直接ECサイトへの出店を申請し、萌音ECサイトを利用して自身の製品を販売できるようにする</li>
<li>商品の多カテゴリ分類。製品のより詳細な仕様分類</li>
<li>より多くの決済方法。現在、作者は他の決済権限を持っていないため、2つのみ連携済み</li>
<li>仮想商品に対応。発券機能を統合する形となる</li>
<li>商品ポスター宣伝画像生成</li>
<li>メールシステム。あってもなくても良い通知機能に過ぎない</li>
<li>右下の多機能メニュー。下部の笑顔のキャラクターがスマートナビゲーションシステムになる</li>
<li>商品インターフェースのデータ表示を追加。データが一目でわかるように</li>
<li>多言語対応（i18n）。国際化の流れに乗り、世界へ</li>
<li>SMSシステム。メールシステムと全く同じ</li>
<li>Redisキャッシュ。本来はこのバージョンで追加する予定だったが、データの制御は現状でも問題ない</li>
<li>ダークモード。これもトレンドに追随</li>
</ul>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/10/02/78350c19ly8hu80wkxv32j21wq1f2e81.jpg" alt=""></p>
<h3 id="ソースコードの入手方法">
<a class="header-anchor" href="#%e3%82%bd%e3%83%bc%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%89%e3%81%ae%e5%85%a5%e6%89%8b%e6%96%b9%e6%b3%95"></a>
ソースコードの入手方法？
</h3><ol>
<li>阿珏酱に233RMB以上を寄付することでソースコードを入手できます。</li>
<li>以前に阿珏酱を支援してくださった方々（以前の支援総額が233に満たない場合は差額を補填する形で、233を超えている場合は1元を寄付して契約を再締結するだけで直接入手できます）</li>
</ol>
<p>こちらをクリックして<a href="https://jq.qq.com/?_wv=1027&amp;k=5cvR0GN">某コミュニティ公式交流グループ</a>で阿珏酱を支援してください。個人のQQリンクを貼れないため、グループリンクを貼りました。グループに参加してグループ管理者に@メンションしてください。</p>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2024/10/02/78350c19ly8hu80y9po72j21ru1fi4qp.jpg" alt=""></p>
<h4 id="なぜ商用版を設けないのか">
<a class="header-anchor" href="#%e3%81%aa%e3%81%9c%e5%95%86%e7%94%a8%e7%89%88%e3%82%92%e8%a8%ad%e3%81%91%e3%81%aa%e3%81%84%e3%81%ae%e3%81%8b"></a>
なぜ商用版を設けないのか？
</h4><p>なぜ商用版ではなく、寄付版なのか、その違いは何でしょうか？商用版となると、ライセンスシステムが必要になり、同時にソースコードが提供されない可能性もあり、技術サポートも必要で、さらに多くの完璧な機能が求められるでしょう。商用版のお金はプロジェクト自体に支払われるもので、作者とは利害関係、つまり商業契約のモデルであり、作者はそれ（人）に対して責任を負う必要があります。（私はこの感覚が特に好きではありません。これが私が稼げない理由かもしれませんね）</p>
        
        <hr><p>この記事は2024-10-02に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2024-10-08です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>真の現実逃避</title>
      <link>https://zh.moejue.cn/ja/posts/116/</link>
      <pubDate>Fri, 18 Sep 2020 06:17:34 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/116/</guid>
      <description>
        <![CDATA[<h1>真の現実逃避</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>ずっとVR機器が欲しいという願いがあったのですが、今日ついに叶いました。
@本群吉祥物 のおすすめで、OculusブランドのVR一体型ヘッドセットを購入しました。</p>
<p>カードを開設して節約カードを入手 -&gt; クーポンを取得 -&gt; チャージ -&gt; 注文 -&gt; 一気に完了（心が痛む）
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1gius6o43luj30im0im0w1.jpg" alt="">
Oculusブランドが中国市場に参入していないなどの理由で、ギガビットルーターもセットで購入しました。
届いたのは大きな箱が2つでした<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1gius8qrdgbj31hc0u0gqr.jpg" alt="">
1つはVR本体が入っていて、販売店からUSB充電バッテリーが追加でプレゼントされていました。SMARTOOOLSというスペインブランドで、なかなか良さそうです<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giusi2qqxej31hc0u0jwj.jpg" alt="">
もう1つの箱には、ギガビットルーターと数百元もするUSB3.0リンクケーブルが入っていました。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giusm81bmtj31hc0u0dkw.jpg" alt="">
ピーナッツの殻のような形をしたルーターです。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giusn2c05tj30u01hcafe.jpg" alt="">
読めない説明書がたくさん、しかも外付けファン付き（#泣き笑い）。このルーターブランドも海外製なので、3ピンのプラグはヨーロッパ規格で、国内の3穴コンセントには変換アダプターが必要です。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giusn4g1sgj31hc0u0gql.jpg" alt="">
外箱 - 裏面、下には人気ゲームのおすすめがいくつか載っています。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut1x3dwpj31hc0u0aet.jpg" alt="">
正面、シンプルでクールです。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut2ajwujj30u01hctbt.jpg" alt="">
パッケージの中の箱には、Oculusのロゴが印刷されています。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut3pv2esj30u01hcdii.jpg" alt="">
蓋を開けると、わぁ！
Oculus Quest 6DoF VR、現在市場で最も強力なVR一体型ヘッドセットです。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut3ugoa8j30u01hcn20.jpg" alt="">
公式にはコントローラー用の電池が1組、デバイスの基本的な操作説明書、そして分厚くて詳細すぎて読めない説明書が付属しています。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut3ykg0oj30u01hc0wf.jpg" alt="">
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut4b7xeoj30u01hcdk1.jpg" alt="">
ポーズを決めて撮影、本体＋左右コントローラー。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut4ctdjuj31hc0u0wjh.jpg" alt="">
さて、電源を入れて使い始め、ずっと楽しみにしていたBeat Saber、VRChatなどをダウンロードして……現実逃避の旅を始めます……。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/09/18/0072Vf1ply1giut4iexgwj30mf0sgtcc.jpg" alt=""></p>
<p>後日談：
普段、開封レビューはしません。なぜなら、専門的なレビューには専門的な学術知識が必要で、すごい専門用語を使いこなす必要もあるからです。しかし、私にはそれができませんし、私の記事を読んだ人を、真面目な顔をしてデタラメを言うことで誤解させたくもありません。私はただ、言いたいことを言っているだけです。
VRChatで皆さんをお待ちしています。後で時間があれば、私が遊んでいる動画をBilibiliにもアップロードします。</p>
<p>もしOculus Questについてさらに詳しく知りたい方がいれば、専門的なレビュー動画をおすすめします。
Oculus Quest VRは私たちを「ソードアート・オンライン」「レディ・プレイヤー1」からどれだけ近づけるのか？
<a href="https://www.youtube.com/watch?v=2z-QyogFp9o&amp;list=LL7N4D2xapjcfH_WEdH-Z0Tg&amp;index=13&amp;t=27s">https://www.youtube.com/watch?v=2z-QyogFp9o</a> (もし開けるなら)</p>
        
        <hr><p>この記事は2020-09-18に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2020-09-18です</p>]]>
      </description>
      
        <category>谈天说地</category>
      
    </item>
    
    

    <item>
      <title>Android APK インストール パッケージの AndroidManifest.xml ファイルを表示します。</title>
      <link>https://zh.moejue.cn/ja/posts/110/</link>
      <pubDate>Sun, 19 Apr 2020 09:15:54 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/110/</guid>
      <description>
        <![CDATA[<h1>Android APK インストール パッケージの AndroidManifest.xml ファイルを表示します。</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p><strong>原因</strong>
先週、私は Android システムのファクトリープッシュ機能に取り組んでいました。一部のモデルは工場出荷時にオフラインにプッシュできないため、apk を解凍し、パッケージ化パラメータに問題があるかどうかを確認します。</p>
<p><strong>序文</strong>
Android 開発では、自分のアプリケーションから他のアプリケーションのインターフェイスにジャンプする必要がある場合がありますが、他のアプリケーションのパッケージ名とクラス名が分からないと、これを行うのは困難です。最も簡単な方法は、アプリケーションの apk ファイルをダウンロードし、拡張子を zip または rar に変更して、ファイルを解凍することです。解凍したファイルの中に AndroidManifest.xml ファイルがあるのですが、開いてみると文字化けしていて恥ずかしいです。どうすればいいですか？</p>
<p>AXMLPrinter2.jar は、一般的に使用される APK 逆コンパイル ツールです。これは主に、パッケージ名、バージョン番号、アイコン、その他の情報を含む apk ファイルを逆コンパイルするために使用されます。 AXMLPrinter2 を使用して androidmanifest.xml を逆コンパイルし、プレーン テキストで表示できます。</p>
<p><strong>使用方法</strong></p>
<ol>
<li>ダウンロードツール AXMLPrinter2.jar ツールのアドレス: <a href="https://code.google.com/archive/p/android4me/downloads">https://code.google.com/archive/p/android4me/downloads</a></li>
<li>表示する AndroidManfist.xml ファイルをツールと同じフォルダーにコピーします。</li>
<li>現在のフォルダーで DOS ウィンドウを開きます。</li>
<li>以下のコマンドを実行します。</li>
</ol>
<p>java -jar AXMLPrinter2.jar AndroidManifest.xml &raquo; AndroidManifest.txt</p>
<p>このコマンドを実行すると、フォルダー内にデコードされたファイルである AndroidManifest.txt ファイルが生成されます。</p>
<p>もちろん、実行後にエラーが発生するものもあります。「java」は内部コマンドでも外部コマンドでも、操作可能なプログラムやバッチ ファイルでもありません。<br>
これは、Java 環境がインストールされていないか、環境変数が設定されていないことが原因で発生します。</p>
<p><strong>JDK をインストールします</strong>
まず、JDK のインストールプロセスを確認してみましょう</p>
<p>1\。 JDKをダウンロードしてインストールします</p>
<p>JDK1.6、1.7、または 1.8 をダウンロードすることを選択できます。使いたいものをダウンロードしてください。
JDK をダウンロードするための公式 Web サイト <a href="https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html</a>
インストールは非常に簡単で、次のステップは簡単です。ここでは詳細には触れません。</p>
<p>2\。 JDK環境変数を構成する</p>
<p>(1) コンピュータの「マイ コンピュータ」を右クリックし、Win10 では「このコンピュータ」を選択し、「プロパティ」を選択し、システムの詳細設定を選択し、新しいインターフェースで「環境変数」を選択します。「システム変数」を編集するだけです。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/19/0072Vf1ply1gdz8ohzbxnj30y10hz435.jpg" alt="">
(2) 「新規」をクリックして「JAVA_HOME」という名前の変数を追加します。変数の値は「C:\Program Files\Java\jdk1.8.0_60」です。この値は、インストールした JDK パスです。インストールした場所にそのアドレスを使用するだけです。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/19/0072Vf1ply1gdz8ozylg5j30m20lldi6.jpg" alt="">「CLASSPATH」という名前の新しい変数を作成します。変数値は「.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar」です。必ず保存してください。 「.;」を見逃さないように注意してください。値にすべての記号を含める必要があります。</p>
        
        <hr><p>この記事は2020-04-19に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2020-04-19です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>支付宝対面決済連携</title>
      <link>https://zh.moejue.cn/ja/posts/107/</link>
      <pubDate>Sat, 04 Apr 2020 02:35:18 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/107/</guid>
      <description>
        <![CDATA[<h1>支付宝対面決済連携</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>当面付（対面支払い）は、その名の通り対面での支払いを指し、店舗がオフラインの消費シーンで迅速な集金を可能にするものです。当面付製品は、バーコード支払いとQRコード決済の2種類の支払い方法をサポートしています。
ここで連携するのはQRコード決済です。
QRコード決済とは、ユーザーがAlipayウォレットの「スキャン」機能を開き、店舗がレジのシーンで提示するQRコードをスキャンして支払いを行うモードを指します。このモードは、オフラインの実店舗での支払い、対面支払いなどのシナリオに適しています。ビジネスフローは以下の図の通りです。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/04/0072Vf1ply1gciwmfk760j30kf071dfz.jpg" alt="">
当面付の契約は非常に簡単で、個人事業主/個人商店の契約が許可されています。そのため、この方法はオンラインのQRコード決済にも大量に利用されていますが、Alipayの関連規約に違反するため、一定のリスクがあります。技術交流として、この問題は一旦置いておきましょう。</p>
<p>技術連携としては、当面付製品を契約していなくても開発を進めることができます。
支払い機能は取引と資金に直接関わるため、開発者が支払い機能をデバッグしやすいように、オープンプラットフォームはサンドボックス環境（サンドボックス環境アカウントとサンドボックス版Alipayウォレットを含む）を用意しています。これにより、開発者はサンドボックス環境でデバッグできます。<a href="https://docs.open.alipay.com/200/105311">サンドボックスへの接続方法</a>と<a href="https://openhome.alipay.com/platform/appDaily.htm">サンドボックス環境への接続</a>をクリックして詳細を確認してください。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/04/0072Vf1ply1gciwn0aa2ej30sq0ptwi3.jpg" alt="">
そのため、私の開発ではサンドボックス環境を使用しています。何しろ中にはたくさんのお金があるので、自由に使えますからね。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/04/0072Vf1ply1gciwlx66oxj30cn0qo0tj.jpg" alt="">
まず、対応する開発言語のSDKをダウンロードします。ダウンロード：https://docs.open.alipay.com/194/105201/
QRコード決済ドキュメント：https://docs.open.alipay.com/194/106078/</p>
<p><strong>キーの設定</strong>
取引当事者（加盟店とAlipay）の身元とデータセキュリティを確保するため、開発者はインターフェースを呼び出す前に、双方のキーを設定し、取引データの双方検証を行う必要があります。
<a href="https://docs.open.alipay.com/291/105971">Alipayオープンプラットフォーム開発アシスタント</a>をダウンロードしてキーを生成してください。
キー生成後、開発者はオープンプラットフォーム開発者センターでキー設定を行う必要があります。設定完了後、Alipay公開鍵を取得できます。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/04/0072Vf1ply1gciwnhq0ztj30u00lo0y6.jpg" alt="">
<strong>設計と連携</strong>
私の設計ではポーリング（後述）を使用する必要がないため、追加していません。
以下は私の業務における関連コードです。</p>
<pre><code>public function pay(){

    if (request()-&gt;isPost()) {
        
        // (必填) 商户网站订单系统中唯一订单号，64个字符以内，只能包含字母、数字、下划线，
        // 需保证商户系统端不能重复，建议通过数据库sequence生成，
        $uid = Session::get('sq.uid');
        $outTradeNo = order\_num() . $uid;

        // (必填) 订单标题，粗略描述用户的支付目的。如“xxx品牌xxx门店当面付扫码消费”
        $subject = '聚合平台用户积分充值';

        // (必填) 订单总金额，单位为元，不能超过1亿元
        // 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】
        $totalAmount = input('post.pay\_money/f');
        if($totalAmount &lt; 1){
            return \['status' =&gt; 1, 'msg' =&gt; '最低充值金额1元'\];
        }
        if($totalAmount &gt; 9999999){
            return \['status' =&gt; 1, 'msg' =&gt; '充值最大金额不能超过9999999元'\];
        }


        // (不推荐使用) 订单可打折金额，可以配合商家平台配置折扣活动，如果订单部分商品参与打折，可以将部分商品总价填写至此字段，默认全部商品可打折
        // 如果该值未传入,但传入了【订单总金额】,【不可打折金额】 则该值默认为【订单总金额】- 【不可打折金额】
        //String discountableAmount = &quot;1.00&quot;; //

        // (可选) 订单不可打折金额，可以配合商家平台配置折扣活动，如果酒水不参与打折，则将对应金额填写至此字段
        // 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】
        // $undiscountableAmount = &quot;0.01&quot;;

        // 卖家支付宝账号ID，用于支持一个签约账号下支持打款到不同的收款账号，(打款到sellerId对应的支付宝账号)
        // 如果该字段为空，则默认为与支付宝签约的商户的PID，也就是appid对应的PID
        //$sellerId = &quot;&quot;;

        // 订单描述，可以对交易或商品进行一个详细地描述，比如填写&quot;购买商品2件共15.00元&quot;
        $body = &quot;聚合平台用户积分充值&quot; . $totalAmount . '元';

        //商户操作员编号，添加此参数可以为商户操作员做销售统计
        // $operatorId = &quot;&quot;;

        // (可选) 商户门店编号，通过门店号和商家后台可以配置精准到门店的折扣信息，详询支付宝技术支持
        // $storeId = &quot;&quot;;

        // 支付宝的店铺编号
        // $alipayStoreId= &quot;&quot;;

        // 业务扩展参数，目前可添加由支付宝分配的系统商编号(通过setSysServiceProviderId方法)，系统商开发使用,详情请咨询支付宝技术支持
        // $providerId = &quot;&quot;; //系统商pid,作为系统商返佣数据提取的依据
        // $extendParams = new ExtendParams();
        // $extendParams-&gt;setSysServiceProviderId($providerId);
        // $extendParamsArr = $extendParams-&gt;getExtendParams();

        // 支付超时，线下扫码交易定义为5分钟
        $timeExpress = &quot;5m&quot;;

        // 商品明细列表，需填写购买商品详细信息，
        // $goodsDetailList = array();

        // // 创建一个商品信息，参数含义分别为商品id（使用国标）、名称、单价（单位为分）、数量，如果需要添加商品类别，详见GoodsDetail
        // $goods1 = new GoodsDetail();
        // $goods1-&gt;setGoodsId(&quot;apple-01&quot;);
        // $goods1-&gt;setGoodsName(&quot;iphone&quot;);
        // $goods1-&gt;setPrice(3000);
        // $goods1-&gt;setQuantity(1);
        // //得到商品1明细数组
        // $goods1Arr = $goods1-&gt;getGoodsDetail();

        // // 继续创建并添加第一条商品信息，用户购买的产品为“xx牙刷”，单价为5.05元，购买了两件
        // $goods2 = new GoodsDetail();
        // $goods2-&gt;setGoodsId(&quot;apple-02&quot;);
        // $goods2-&gt;setGoodsName(&quot;ipad&quot;);
        // $goods2-&gt;setPrice(1000);
        // $goods2-&gt;setQuantity(1);
        // //得到商品1明细数组
        // $goods2Arr = $goods2-&gt;getGoodsDetail();

        // $goodsDetailList = array($goods1Arr,$goods2Arr);

        //第三方应用授权令牌,商户授权系统商开发模式下使用
        $appAuthToken = &quot;&quot;;//根据真实值填写

        // 创建请求builder，设置请求参数
        $qrPayRequestBuilder = new AlipayTradePrecreateContentBuilder();
        $qrPayRequestBuilder-&gt;setOutTradeNo($outTradeNo);
        $qrPayRequestBuilder-&gt;setTotalAmount($totalAmount);
        $qrPayRequestBuilder-&gt;setTimeExpress($timeExpress);
        $qrPayRequestBuilder-&gt;setSubject($subject);
        $qrPayRequestBuilder-&gt;setBody($body);
        // $qrPayRequestBuilder-&gt;setUndiscountableAmount($undiscountableAmount);
        // $qrPayRequestBuilder-&gt;setExtendParams($extendParamsArr);
        // $qrPayRequestBuilder-&gt;setGoodsDetailList($goodsDetailList);
        // $qrPayRequestBuilder-&gt;setStoreId($storeId);
        // $qrPayRequestBuilder-&gt;setOperatorId($operatorId);
        // $qrPayRequestBuilder-&gt;setAlipayStoreId($alipayStoreId);

        $qrPayRequestBuilder-&gt;setAppAuthToken($appAuthToken);


        // 调用qrPay方法获取当面付应答
        require ROOT\_PATH.'extend/f2fpay/config/config.php';
        $qrPay = new AlipayTradeService($config);
        $qrPayResult = $qrPay-&gt;qrPay($qrPayRequestBuilder);

        //  根据状态值进行业务处理
        switch ($qrPayResult-&gt;getTradeStatus()){
            case &quot;SUCCESS&quot;:
                $response = $qrPayResult-&gt;getResponse();

                Db::name('order')
                    -&gt;insert(\[
                        'uid' =&gt; $uid,
                        'pay\_id' =&gt; $outTradeNo,
                        'money' =&gt; $totalAmount,
                        'creat\_time' =&gt; time(),
                        'subject' =&gt; $subject
                    \]);

                return \['status' =&gt; 0, 'msg' =&gt; '支付宝创建订单二维码成功!!!&quot;','data' =&gt; \[
                    'qr\_code' =&gt; $response-&gt;qr\_code,
                    'outTradeNo' =&gt; $outTradeNo
                \]\];
                // $qrcode = $qrPay-&gt;create\_erweima($response-&gt;qr\_code);
                // echo $qrcode;
                // print\_r($response);
                break;
            case &quot;FAILED&quot;:
                return \['status' =&gt; 1, 'msg' =&gt; '支付宝创建订单二维码失败!!!&quot;'\];
                // if(!empty($qrPayResult-&gt;getResponse())){
                //     print\_r($qrPayResult-&gt;getResponse());
                // }
                break;
            case &quot;UNKNOWN&quot;:
                return \['status' =&gt; 1, 'msg' =&gt; '系统异常，状态未知!!!&quot;'\];
                // echo &quot;系统异常，状态未知!!!&quot;.&quot;&lt;br&gt;--------------------------&lt;br&gt;&quot;;
                // if(!empty($qrPayResult-&gt;getResponse())){
                //     print\_r($qrPayResult-&gt;getResponse());
                // }
                break;
            default:
                return \['status' =&gt; 1, 'msg' =&gt; '不支持的返回状态，创建订单二维码返回异常!!!'\];
                break;
        }
        return ;
    }


}
</code></pre>
<p>以上が当面付の事前注文コードです。
このSDKについては、どうしても文句を言いたいです。誰が書いたデモなのか、PHPの例にlotusphpフレームワークを導入していて、大量の不要なものが含まれており、私たち開発者が受け入れられるかどうかを全く考慮していません。
私も少し時間をかけてSDKを簡素化し、必要な部分だけを取り出して自分のフレームワークに組み込み、namespaceとオートロードを追加しました。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/04/0072Vf1ply1gciwodh05dj30af0egdho.jpg" alt="">
QRコード決済には独自の機能があります&mdash;-非同期通知です。
これはオンライン決済で最も必要とされる機能でもあります。
レジが事前注文リクエストAPIを呼び出してQRコードを生成しユーザーに表示した後、ユーザーが携帯電話でQRコードをスキャンして支払いを行うと、Alipayは当該注文の変更情報を、加盟店が事前注文リクエストを呼び出した際に渡した非同期通知アドレス <code>notify_url</code> に沿って、POSTリクエストの形式で支払い結果をパラメータとして加盟店システムに通知します。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/04/04/0072Vf1ply1gciwouog84j30o10cu768.jpg" alt="">
この非同期通知アドレスは、アプリケーション側で設定する必要があることを覚えておいてください。</p>
        
        <hr><p>この記事は2020-04-04に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2020-04-04です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>ESP8266 シリアル WiFi モジュール - WiFi キラー</title>
      <link>https://zh.moejue.cn/ja/posts/105/</link>
      <pubDate>Mon, 03 Feb 2020 06:59:55 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/105/</guid>
      <description>
        <![CDATA[<h1>ESP8266 シリアル WiFi モジュール - WiFi キラー</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>私はしばらく前に ESP8266 を購入し、それで遊ぶつもりでした。実際には数カ月間停滞し、その後2020年まで延期された。
ESP8266 は、幅広い実用的なアプリケーションを備えた WiFi モノのインターネット モジュールです。簡単に言えば、その機能は次のとおりです。Wi-Fi からデータを受信し、シリアル ポート経由で出力します。シリアルポートからデータを受信し、Wi-Fi経由でデータを出力します。</p>
<p>このものの技術は成熟しており、コストが低いため、価格はわずか数十元です。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjav59u52j30p90alq42.jpg" alt="">
開封 ここで買ったのは有機EL液晶画面付きパッケージ（将来のお楽しみに備えて）
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjb22mijhj310a0r741n.jpg" alt="">
最も古典的なのは WiFi キラーです。それでは、まずお楽しみとして WiFi キラーのファームウェアをフラッシュしてみましょう。
ファームウェア: <a href="https://github.com/samdenty/Wi-PWN?wi-pwn=7.0">https://github.com/samdenty/Wi-PWN?wi-pwn=7.0</a>
原理は、認証解除メッセージを送信して、ルーター自体を切断する必要があるとクライアントに認識させ、Wi-Fi から切断することです。偽造ルーターは認証解除メッセージをクライアントに送信し、クライアントが Wi-Fi から積極的に切断されるようにします。また、カスタム ホットスポット フォージェリ (偽の Wi-Fi 信号をバッチで生成する) もサポートしています。</p>
<p>パソコンとの接続には、データ通信が可能なデータケーブルを使用してください。デスクトップ コンピュータを背面ポートに接続してみます。
接続後、Windows システム コンピュータは、下の図に示すように、ドライバを自動的にインストールします。この COM を覚えておいてください。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjb5v538uj308i0250st.jpg" alt="">
また、ch341ser ドライバーと、USB 用の WINDOWS ドライバー インストール パッケージをシリアル ポート CH341/CH340 にインストールする必要があります。プロンプトに従ってインストールするだけです。これは別途ダウンロードする必要があります</p>
<p>ファームウェアの書き込み
ここで使用するのは、NodeMcu FIRMWARE PROGRAMMER 書き込みツールです。</p>
<ol>
<li>ここの COM ポートとして、前に見たものを選択します。または、デバイス マネージャーで ESP8266 開発ボードがどのポートに接続されているかを確認してください。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjbx2zsdgj30fw099q4f.jpg" alt=""></li>
<li>config でファームウェア アドレスを選択し、その他はデフォルトで変更しないままにします。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjbw32lcdj30fw099myz.jpg" alt=""></li>
<li>詳細 - ボーレート ボーレートは、開発ボードの裏面に書かれている内容によって異なります。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjbw7qovhj30fw099dhg.jpg" alt="">
写真の通り、丸で囲った部分が
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjc12jibpj30u4145n0l.jpg" alt="">
設定後、フラッシュ (F) キーをクリックして書き込みを開始します。このプロセスには時間がかかる場合がありますので、そのままお待ちください。</li>
</ol>
<p>書き込みが完了したら、一度抜き差ししてください。書き込みが成功すると、wi-pwn という名前のパブリック WiFi が表示されます。
リンク後、ブラウザーでこの背景 http://192.168.4.1/ が開き、ガイダンスに従ってください。<br>
ここで WiFi をバッチで偽造する方法を説明しましょう。 「Beacom」をクリックして作業を開始します。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjcar7sraj317j0kf106.jpg" alt="">
動作ステータス、実行中、青色のインジケータライトが点滅して点灯したまま
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjcavnorvj30ys1aegps.jpg" alt="">
なぜ長い間携帯電話でいくつかしか検索できないのかわかりません。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/02/03/0072Vf1ply1gbjccbz1u2j30lp19vzm7.jpg" alt="">
他にもたくさんの機能があるので、一つずつ試していくつもりはありません。
要約: 要約するものは何もありません。私も初めてのプレイです。プレイの全プロセスを記録し、私の経験を共有します。<br>
今回は他人が書いたファームウェアを使用しました。次回は私が自分で書く番です。</p>
        
        <hr><p>この記事は2020-02-03に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2020-02-03です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
  </channel>
</rss>
