<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>X402 on 101ta28&#39;s Blog</title>
    <link>https://blog.101ta28.com/tags/x402/</link>
    <description>Recent content in X402 on 101ta28&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Thu, 03 Sep 2026 23:30:56 +0900</lastBuildDate>
    <atom:link href="https://blog.101ta28.com/tags/x402/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>HugoブログにMPP、x402、Stripe対応の有料記事配信を実装した</title>
      <link>https://blog.101ta28.com/posts/hugo-paid-content-with-x402-mpp-stripe/</link>
      <pubDate>Thu, 03 Sep 2026 23:12:29 +0900</pubDate>
      <guid>https://blog.101ta28.com/posts/hugo-paid-content-with-x402-mpp-stripe/</guid><description>&lt;p&gt;Hugoで作ったブログに、有料記事を配信する仕組みを追加した。
AI AgentはMPPまたはx402で支払い、人間はStripe Checkoutで購入できる。&lt;/p&gt;
&lt;p&gt;ただし、決済画面を追加するだけでは有料配信にならない。
Hugoが生成した公開ファイルに本文が残っていれば、URLや配信元を調べることで決済を迂回できるからである。&lt;/p&gt;
&lt;p&gt;そこで、公開するプレビューと販売する完全版をビルド時に分離し、完全版だけをprivateなCloudflare R2へ保存した。
Cloudflare Workerは支払いを確認したリクエストに限り、R2からMarkdownまたはJSONを返す。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
