<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>Payment Request API &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/payment-request-api/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>実は世界を変えるWeb Paymentsについて、グーグルのえーじさんに聞いてきた！</title>
		<link>/shumpei-shiraishi/24835/</link>
		<pubDate>Thu, 11 Jan 2018 01:00:21 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Payment Request API]]></category>
		<category><![CDATA[Web Payments]]></category>

		<guid isPermaLink="false">/?p=24835</guid>
		<description><![CDATA[連載： HTML5 Conference 2017特集 (16) こんにちは、編集長の白石です。 この記事は、9月24日に開催されたHTML5 Conference 2017に登壇したエキスパートに、お話されたセッション...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/html5-conf2017/" class="series-457" title="HTML5 Conference 2017特集" data-wpel-link="internal">HTML5 Conference 2017特集</a> (16)</div><p><style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style></p>

<p>こんにちは、編集長の白石です。</p>

<p>この記事は、9月24日に開催された<a href="http://events.html5j.org/conference/2017/9/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Conference 2017</a>に登壇したエキスパートに、お話されたセッションのトピックを中心に、様々なお話を伺おうというものです。セッションの内容をより深く理解する手助けになるだけでなく、本記事単体でも面白く読んでいただけることを目指しています。</p>

<p>今回お話を伺ったのは、Googleのえーじさんです。</p>

<p><img src="/wp-content/uploads/2017/12/DSC06964.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24920" srcset="/wp-content/uploads/2017/12/DSC06964.jpg 640w, /wp-content/uploads/2017/12/DSC06964-300x200.jpg 300w, /wp-content/uploads/2017/12/DSC06964-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>えーじさんのセッションは「<a href="http://events.html5j.org/conference/2017/9/session/#b5" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ウェブのための次世代決済法</a>」でした。</p>

<p>スライド資料は<a href="https://docs.google.com/presentation/d/e/2PACX-1vS6TvUO3iMcepLt4EtvaQhwhqzWrlvghHiTpUvzbgM-T4pd4oYCJ3c1FSAe9MPN1EgmoiMpPthJqghQ/pub" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>で公開されています。</p>

<div class='embed-container embed-responsive embed-responsive-4by3'>
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vS6TvUO3iMcepLt4EtvaQhwhqzWrlvghHiTpUvzbgM-T4pd4oYCJ3c1FSAe9MPN1EgmoiMpPthJqghQ/embed" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</div>

<p><br></p>

<h2>Web Paymentsは（モバイル）Webの決済体験を変える</h2>

<p><b class="speaker siraisi">白石:</b> 本日は、Web Paymentsについてお聞かせください。
Web Paymentsというのは、その名の通りWeb上での支払い体験を改善するものだと思いますが、そもそもなぜWeb Paymentsが重要なのでしょうか？</p>

<p><b class="speaker kitamura">えーじ:</b> それについては面白いデータがあります。</p>

<p>モバイルデバイス上で買い物が行われるのはもう一般的ですが、<strong>その3分の2はアプリじゃなくて（モバイル）Webサイトで行われている</strong>んですよ。</p>

<p><b class="speaker siraisi">白石:</b> へえ！スマートフォンだと、Webよりもアプリのほうが長い時間使われていそうですが、意外です。</p>

<p><b class="speaker kitamura">えーじ:</b> それだけじゃありません。今度はデスクトップWebとモバイルWebで支払いのコンバージョン率を比較すると、デスクトップのほうが2倍も高いんです。</p>

<p>これはつまり、<strong>モバイルWebサイトにユーザーはたくさんアクセスしているけど、買い物はデスクトップのほうがしやすい</strong>ということです。</p>

<p><img src="/wp-content/uploads/2017/12/DSC06975.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24923" srcset="/wp-content/uploads/2017/12/DSC06975.jpg 640w, /wp-content/uploads/2017/12/DSC06975-300x200.jpg 300w, /wp-content/uploads/2017/12/DSC06975-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker siraisi">白石:</b> 逆に言えば、モバイルWebサイトだと決済がしにくいってことですね。</p>

<p><b class="speaker kitamura">えーじ:</b> そうです。Amazonとか日頃から自分が使っているサイトであれば、クレジットカードの決済情報をあらかじめサービスが記憶しているので、決済はしやすい。</p>

<p>しかし、初めて訪れるサイトで買い物するとなると大変です。
クレジットカード番号や期限、3桁のセキュリティコードまで入力しなくてはならない。さらに、配送が必要な商品となると住所まで入力する必要が出てくる。</p>

<p>これだとめんどくさくて、途中で諦めてしまいますよね。個人的にも、モバイルで見つけた商品はとりあえずブックマークしておいて、デスクトップで決済するようなこともよくあります。</p>

<p><b class="speaker siraisi">白石:</b> 確かに。ではWeb Paymentsは、そういう決済に関する体験を改善するものだということですね。</p>

<p><b class="speaker kitamura">えーじ:</b> とりあえずはそうです。ただ、Web Paymentsが目指す世界はさらに先なんですよ。</p>

<h2>クレジットカードは近い将来使われなくなるかもしれない</h2>

<p><b class="speaker siraisi">白石:</b> というのは？</p>

<p><b class="speaker kitamura">えーじ:</b> そもそも、<strong>クレジットカードっていうシステムそのものが非常に脆弱</strong>なんですよね。プラスチックのカードそのものに、すべての情報が記載されているわけですよ。情報を盗むのも簡単だし、紛失したらおおごとです。</p>

<p><b class="speaker siraisi">白石:</b> 確かに…。</p>

<p><b class="speaker kitamura">えーじ:</b> そこで最近は、Apple PayやAndroid Payなど、スマートフォンにクレジットカード情報を搭載しようという動きが出てきました。</p>

<p>スマートフォンの端末には、指紋認証や顔認証を含めた認証機能があり、情報は端末内で安全に格納されるので、コピーができません。決済を行うには、端末が物理的に手元にある必要がある。しかも保存される番号も、クレジットカード番号そのものではなく、トークンと呼ばれる仮の番号です。仮に盗まれたとしてもリモートで無効化できるし、再発行の必要もないわけです。</p>

<p>このように、クレジットカードに比べてメリットが非常に大きいんです。<strong>近い将来物理的なクレジットカードは使われなくなる</strong>と予想している人もいます。</p>

<p><img src="/wp-content/uploads/2017/12/DSC07003.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24924" srcset="/wp-content/uploads/2017/12/DSC07003.jpg 640w, /wp-content/uploads/2017/12/DSC07003-300x200.jpg 300w, /wp-content/uploads/2017/12/DSC07003-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker siraisi">白石:</b> なるほど、ぼくはまだApple Payなどを使ったことがないんですが、そんなにメリットのある仕組みだったんですね。知りませんでした。</p>

<p><b class="speaker kitamura">えーじ:</b> 決済方法の進化は、これだけにとどまりません。仮想通貨や銀行間送金など、新しい支払い方法も次々に登場していて、「お金を右から左に移動する」ような取引のすべてで革新が起きようとしています。</p>

<p>Web Paymentsはこうした状況において、様々なプレイヤーをつなぐ「接着剤」のような働きになりつつある仕様なんです。</p>

<p>言ってみれば、<strong>新しいペイメントエコシステムを構築する上で欠かせないピースになる</strong>と考えています。</p>

<p><b class="speaker siraisi">白石:</b> 現在の決済システムが抱える問題点を解決しようとする、壮大な話なわけですね。聞いていてワクワクします。</p>

<p><b class="speaker kitamura">えーじ:</b> なので、Web Paymentsはすごくたくさんの仕様から成り立っています。そのうち、現在でも実装が広く進んでいて、Web技術者が簡単に試せるのは<a href="https://www.w3.org/TR/payment-request/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API</a>です。</p>

<p><img src="/wp-content/uploads/2018/01/payments-specs-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25131" srcset="/wp-content/uploads/2018/01/payments-specs.png 640w, /wp-content/uploads/2018/01/payments-specs-300x169.png 300w, /wp-content/uploads/2018/01/payments-specs-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>Payment Request APIとは</h2>

<p><b class="speaker siraisi">白石:</b> Payment Request APIとはなんですか？</p>

<p><b class="speaker kitamura">えーじ:</b> これが、最初に申し上げたWeb上の決済を手軽に行えるようにする仕組みです。</p>

<p>単純に言えば、クレジットカードや住所など、決済に必要な情報の入力をユーザーが簡単に行えるようになります。<strong>決済情報はブラウザが記憶してくれていて、ユーザーは事前に入力してある値から選ぶだけで、Webサイトに情報を渡すことができます</strong>。</p>

<p>基本的なコードは簡単で、以下のように<code>PaymentRequest</code>のインスタンスを作って<code>show()</code>メソッドを呼び出すだけで、支払い情報を選択できるUIをブラウザが表示します。</p>

<p></p><pre class="crayon-plain-tag">var request = new PaymentRequest(methods, details, options);

request.show().then(response =&gt; {
  // 支払い処理を行う
  // PSP（決済代行業者）に送るなどして決済を完了
  response.complete('success');
});</pre><p></p>

<p><img src="/wp-content/uploads/2018/01/payment-dialog-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25127" srcset="/wp-content/uploads/2018/01/payment-dialog.png 640w, /wp-content/uploads/2018/01/payment-dialog-300x169.png 300w, /wp-content/uploads/2018/01/payment-dialog-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>ここで、ダイアログの中ほどに「Android Pay」や「Visa」など、支払い方法を選択できる項目があります。これは、<code>PaymentRequest</code>のコンストラクタの第一引数として、支払方法の情報を渡すことで指定できます。</p>

<p><img src="/wp-content/uploads/2018/01/payment-methods-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25128" srcset="/wp-content/uploads/2018/01/payment-methods.png 640w, /wp-content/uploads/2018/01/payment-methods-300x169.png 300w, /wp-content/uploads/2018/01/payment-methods-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>また、ダイアログに表示される情報は、<code>PaymentRequest</code>のコンストラクタの第二引数で指定することができます。購入商品の情報を渡すだけでなく、配送オプションを指定することも可能です。</p>

<p><img src="/wp-content/uploads/2018/01/payment-details-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25126" srcset="/wp-content/uploads/2018/01/payment-details.png 640w, /wp-content/uploads/2018/01/payment-details-300x169.png 300w, /wp-content/uploads/2018/01/payment-details-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>コンストラクタの最後の引数は支払いに関するオプションです。配送先住所を必要とするかや名前、メールアドレス、電話番号の情報を要求するかどうかなどを指定できます。</p>

<p><img src="/wp-content/uploads/2018/01/payment-options-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25129" srcset="/wp-content/uploads/2018/01/payment-options.png 640w, /wp-content/uploads/2018/01/payment-options-300x169.png 300w, /wp-content/uploads/2018/01/payment-options-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>これらを指定して表示されたダイアログ上でユーザーが入力を終えると、プログラムにユーザーが入力した情報が渡ってきます。
プログラムはこれらの情報をサーバーに送信するなどして、決済を完了するわけですね。</p>

<p><img src="/wp-content/uploads/2018/01/payment-response-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25130" srcset="/wp-content/uploads/2018/01/payment-response.png 640w, /wp-content/uploads/2018/01/payment-response-300x169.png 300w, /wp-content/uploads/2018/01/payment-response-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker siraisi">白石:</b> なるほど、Payment Request APIそのものは、使うのは全然難しくなさそうですね。先ほど、実装が進んでいると仰ってましたが、現在どのブラウザで利用できるんでしょうか？</p>

<p><b class="speaker kitamura">えーじ:</b> Chromeは、iOSを含む全プラットフォームで利用できます。他にもChromiumをベースに開発されているSamsung Internet BrowserやMicrosoft Edgeでも利用できます。Firefoxでは開発中ですね。あと、Safari上では<a href="https://developer.apple.com/documentation/applepayjs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apple Pay JS</a>という、Apple Payを利用するためのAPIが存在するのですが、<a href="https://github.com/GoogleChromeLabs/appr-wrapper" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">それをPayment Request APIでラップしたライブラリ</a>も存在します。嬉しいニュースとしては、<strong>Safariも現在Payment Request APIを実装中</strong>ということです。</p>

<p><b class="speaker siraisi">白石:</b> おお、もうかなりのブラウザ上で動作するんですね。</p>

<p><b class="speaker kitamura">えーじ:</b> あと、Payment Request APIがどういう動作をするかを試してみたかったら、<a href="https://polykart.store/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">polykart.store</a>というデモサイトがあるのでアクセスしてみてください。商品を選んで「BUY NOW」を選択すれば、Payment Request APIを使用した支払い用ダイアログが表示されます。もちろん、実際に決済が行われるわけではありませんのでご安心ください。</p>

<p><img src="/wp-content/uploads/2017/12/polycart-640x490.png" alt="" width="640" height="490" class="aligncenter size-large wp-image-24844" srcset="/wp-content/uploads/2017/12/polycart.png 640w, /wp-content/uploads/2017/12/polycart-300x230.png 300w, /wp-content/uploads/2017/12/polycart-207x158.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>Web Paymentsが目指す世界——新しいペイメントエコシステム</h2>

<p><b class="speaker siraisi">白石:</b> しかし先ほどのコードでちょっと気になったのは、結局クレジットカード番号とかをプログラムが直接受け取るという点です。
セキュリティコードも含め、決済に必要な情報を全部Webサイトに渡してしまうのは何か怖いというか。まあ、現在でも一般的に行われていることではあるんですが。</p>

<p><b class="speaker kitamura">えーじ:</b> <code>PaymentRequest</code>に渡すペイメントメソッドに&#8217;basic-card&#8217;を指定した場合、クレジットカードの情報を生で受け取るように動作するんですよね。</p>

<p>&#8216;basic-card&#8217;の仕組みはわかりやすく、どんな決済代行業者でも扱えるという点ではいいのですが、おっしゃるとおりセキュリティ面での懸念があります。<strong>ペイメントの未来はそこにはありません</strong>。</p>

<p>そこで登場するのが、生のクレジットカード情報ではなく、使い捨てのトークンを利用するという方法、つまり先程お話したApple PayやAndroid Payで利用できるトークンのことです。こちらの方法なら安全性も高まりますし、ECサイト側も、クレジットカード情報に触れる必要がないので助かるんです（※）。</p>

<p><img src="/wp-content/uploads/2018/01/tokenization-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25132" srcset="/wp-content/uploads/2018/01/tokenization.png 640w, /wp-content/uploads/2018/01/tokenization-300x169.png 300w, /wp-content/uploads/2018/01/tokenization-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>※ ECサイト側も助かる…経済産業省が取りまとめた<a href="http://www.meti.go.jp/press/2016/03/20170308003/20170308003.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">クレジットカード取引におけるセキュリティ対策の強化に向けた実行計画2017</a>により、ECサイトはクレジットカード情報の非保持化、もしくはカード情報を扱う場合はPCI DSS（※）に対応しなくてはならない。</p>

<p>※ PCI DSS（Payment Card Industry Data Security Standard）…カード会員情報の保護を目的として、国際ペイメントブランド5社（アメリカンエキスプレス、Discover、JCB、マスターカード、VISA）が共同で策定したカード情報セキュリティの国際統一基準</p>

<p><b class="speaker siraisi">白石:</b> これは素晴らしい。ぼくらWeb技術者がこの仕組みを利用するとしたら、どうしたらいいんですか？</p>

<p><b class="speaker kitamura">えーじ:</b> <code>PaymentRequest</code>に渡すペイメントメソッドには、URLを渡すというもう一つの方法があるんです。こちらの方法を用いると、支払いを行うにあたって、外部のペイメントアプリケーションを呼び出すことができます。</p>

<p><img src="/wp-content/uploads/2017/12/DSC07043.jpg" alt="" width="640" height="414" class="alignnone size-full wp-image-24925" srcset="/wp-content/uploads/2017/12/DSC07043.jpg 640w, /wp-content/uploads/2017/12/DSC07043-300x194.jpg 300w, /wp-content/uploads/2017/12/DSC07043-207x134.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker siraisi">白石:</b> 先ほどのコード例でも、<code>https://android.com/pay</code>というURLを渡して、Android Payが表示されていましたね。</p>

<p><img src="/wp-content/uploads/2017/12/payment-methods-640x361.png" alt="" width="640" height="361" class="aligncenter size-large wp-image-24839" srcset="/wp-content/uploads/2017/12/payment-methods.png 640w, /wp-content/uploads/2017/12/payment-methods-300x169.png 300w, /wp-content/uploads/2017/12/payment-methods-207x117.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker kitamura">えーじ:</b> こちらの方法を用いると、トークン化の処理を含め、複雑な処理は全て裏で行われ、Webアプリは戻ってきたトークンを使って決済処理を完了させるだけで済みます。</p>

<p><b class="speaker siraisi">白石:</b> セッションスライドの、ペイメントアプリを通じてトークンをやり取りする図を見て、複雑なので怖気づいてたところでした(笑)。</p>

<p><img src="/wp-content/uploads/2018/01/payment-association-640x360.png" alt="" width="640" height="360" class="aligncenter size-large wp-image-25125" srcset="/wp-content/uploads/2018/01/payment-association.png 640w, /wp-content/uploads/2018/01/payment-association-300x169.png 300w, /wp-content/uploads/2018/01/payment-association-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker kitamura">えーじ:</b> この図の、企業間の提携などについては企業間で行われることですし、Web技術者の手をわずらわせることはありませんのでご安心ください。</p>

<p>ちなみに、ペイメントアプリケーションは技術的には誰でも作ることができます。なので、クレジットカードに限らない支払い方法、例えば仮想通貨やキャリア決済なども将来的にはPayment Request APIから扱えるようになるというわけです。</p>

<p>ペイメントアプリケーションを指定するのには、先ほども申し上げたようにURLを使用するので、基本的にはWebアプリです。ですが、Web Manifestの仕組みに対応していれば、ネイティブのAndroidアプリを呼び出すことも可能です。</p>

<p><a href="https://bobpay.xyz/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">BobPay</a>という、ネイティブ、Webどちらにも対応したペイメントアプリのサンプルがありますので、よければ試してみてください。Web版はAndroid版Chrome Dev、ネイティブ版はChrome 60以降がインストールされたAndroidであれば試すことができます。</p>

<p><img src="https://bobpay.xyz/img/bobpay_android.png" alt="" /></p>

<p><b class="speaker siraisi">白石:</b> 支払い方法はよりセキュアに、多様化するということですね。そのために、業界全体が変化しようとしている。まさに新しいペイメントエコシステムですね。</p>

<p>本日は、大変勉強になるお話をありがとうございました！</p>
]]></content:encoded>
		
		<series:name><![CDATA[HTML5 Conference 2017特集]]></series:name>
	</item>
	</channel>
</rss>
