PR

JPQRの利用者提示型(CPM)・店舗提示型(MPM)や静的・動的QRコード、請求書払い(バーコード)の仕様は?

JPQRの利用者提示型(CPM)・店舗提示型(MPM)や静的QRコード・動的QRコードの仕様は?
記事内に広告が含まれています。もしお役にたったらリンクからお申込みいただけたら幸いです。
スポンサーリンク

乱立する〇〇ペイですが、
総務省 統一QR「JPQR」普及事業で進められている
JPQRでレジ前に並ぶQRコードの嵐が無くなります!

今のところJPQRに対応しているQRコード決済は次のとおり。

JPQRは統一規格ということはご存じの方も多いでしょう。

本記事では

  • JPQRとは
  • JPQRにおける利用者提示型(CPM(Consumer-Presented Mode))の
    「統一バーコード」と「統一QRコード」とは
  • JPQR「統一バーコード」と「統一QRコード」の仕様
  • JPQR店舗提示型(MPM(Merchant-Presented Mode))
    「静的QRコード」と「動的QRコード」とは
  • JPQR「静的QRコード」と「動的QRコード」の仕様
  • 請求書払い(バーコード)の仕様

についてお伝えしていきます。

スポンサーリンク

JPQRとは

JPQRの目的

各企業独自にバーコードやQRコードの仕様をくみ上げて「コード決済」に対応してしまうとコスパが悪い!

そこで総務省や一般社団法人キャッシュレス推進協議会で統一的な

  • バーコード
  • QRコード(利用者提示型/店舗掲示型(静的)/店舗掲示型(動的))

の仕様構築することで

利用者や導入店舗のコスト削減、キャッシュレス決済の推進を目的としたものです。

JPQRの種類

JPQRには次の4種類があります。

JPQRの種類
  1. 利用者提示型「統一バーコード」
  2. 利用者提示型「統一QRコード」
  3. 店舗掲示型「静的QRコード」
  4. 店舗掲示型「動的QRコード」

それぞれどういったものか見ていきましょう。

スポンサーリンク

JPQRにおける利用者提示型(CPM(Consumer-Presented Mode))とは?

利用者提示型(CPM(Consumer-Presented Mode))の「統一バーコード」と「統一QRコード」とは

利用者提示型
(CPM[Consumer-Presented Mode])
とは?

利用者提示型(CPM[Consumer-Presented Mode])とは
利用者が店舗などに「バーコード」または「QRコード」を
提示して決済を行う方法のこと。

PayPayなどをご利用の方はお馴染みですね。

画面イメージは画像のような画面のもの。

上部の一次元バーコードが「統一バーコード」
下部の二次元バーコードが「統一QRコード」です。

JPQR「統一バーコード」と「統一QRコード」の仕様

1.JPQR「統一バーコード」の仕様

「統一バーコード」仕様の概要

「統一バーコード」の仕様概要は次のとおり。

JPQR「統一バーコード(CPM)」の仕様
(出典:一般社団法人キャッシュレス推進協議会「ガイドラインの概要」より)

「統一バーコード」のデータレイアウトはこんな感じ。

ガイドラインとの紐づけができる全体仕様

No項目義務化レベル内容ガイドライン
該当箇所
1表示データレイアウト3.1(1)
2表示
(エンコード)
Code128 形式でエンコード3.1(1)
3表示
(大きさ)
読み取り可能なサイズによる表示
最大サイズ 6cm が目安
3.1(2)
4契約店との接続等6cm 幅のバーコードを読み取り可能な
レーザー方式又は CCD 方式の処理端末の設置
5.1(1)

2.JPQR「統一QRコード」の仕様

「統一QRコード」仕様の概要

「統一QRコード」の仕様概要は次のとおり。

JPQR「統一QRコード(CPM)」の仕様
(出典:一般社団法人キャッシュレス推進協議会「ガイドラインの概要」より)
タグ (Tag)SubTagTag 説明 ※EMV 仕様(CPM)準拠長さ (Length)フォーマット(Formant)値 (Value)存在 (Presence)
‘85’ペイメント・フォーマット識別子
(Payload
Format Indicator)
5英数/大小文字JPQR1
4A 50 51 52 31
(バイナリ)


※EMV仕様(CPM)の場合「CPV01
必須
‘61’アプリケーション・テンプ レ ー ト
(Application Template)
可変長EMV仕様(CPM)
規定 bit
Tag61 の長さ必須
‘4F’ADF Name
(ブランド識別子≒仕向け先に使うもの)
(Application Definition File (ADF) Name)
可変長EMV仕様
(CPM)
規定 bit
事業者識別コード 8 桁必須
‘57’ID 等を格納する場所
(Track 2 Equivalent Data)
可変長EMV仕様
(CPM)
規定 bit
決済ID(事業者識別コード 8 桁 +トークン部(桁規定なし))必須
‘99’任意領域 (Other template)可変長EMV仕様(CPM)
規定 bit
自由領域任意
(出典:コード決済に関する統一技術仕様ガイドライン【利用者提示型】【表 3.2(2) 統一 QR コードの格納データ】)より

ガイドラインとの紐づけができる全体仕様

No項目義務化レベル内容ガイドライン該当箇所
1表示データレイアウト(データレイアウト以外のデータ記載方法等は EMV 仕様(CPM)に従う)3.2(2)
2表示統一 QR コードと EMV 仕様(CPM)との振り分けが可能な分岐処理の実装3.2(1)
3表示
(エンコード)
Base64 でエンコード3.2(2)
4表示
(サイズ)
最小セルサイズ(1 セルあたり 0.33 ㎜相当以上
ただし、1 セルあたり0.5 ㎜相当以上を推奨
3.2(3)
5表示
(容量)
データ容量上限 128 byte3.2(2)
6表示
(余白)
QR コードの周囲に 4 セル分の余白を配置
(ISO/IEC18004 及び JIS X 0510 のとおり)
3.2(3)
7表示
(形と色)
正方形の QR コードを黒と白で表示3.2(3)
8表示カラーで QR コードを表示する場合のコントラストに関する注意3.2(3)
9表示QR コード内にロゴ等を埋め込むと読み込み率が低下する3.2(3)
10表示原則として ISO/IEC18004 及び
JIS X 0510 に準拠
3.2(3)
11契約店との接続等最低限 128 byte(バージョン 8)の QR コードを読み取り可能な処理端末の設置)5.1(1)
12セキュリティ
(有効時間)
QR コード等の有効時間の設定(目安:5 分)6.3(1)
13セキュリティQR コード等の残時間表示、自動更新
等のスムーズな決済を実現する機能の実装
6.3(1)
14セキュリティQR コード等の再発行の際の従前のQR コード等の無効化6.3(2)
15セキュリティQR コード等の再発行時による不正発生抑止手段の導入6.3(2)

Base64とは

64は「64進数」を意味します。

すべてのデータを次の64文字で表すエンコード方式です

12345678910
00123456789
1ABCDEFGHIJ
2KLMNOPQRST
3UVWXYZabcd
4efghijklmn
5opqrstuvwx
6yz+(-)/(_)=(※)
(※)・・・末尾パディング

3.JPQR「統一バーコード」と「統一QRコード」の共通仕様

「コード決済に関する統一技術仕様ガイドライン【利用者提示型】CPM」にはほかにも細かい規定があります。

No項目義務化レベル内容ガイドライン該当箇所
1表示最高画面輝度による表示3.3(1)
2表示バーコードと QR コードの配置3.3(2)
3表示読み取りが適正に行われるための品質保証対策3.3(3)
4事業者識別コード事業者識別コードの取得又は登録4.2
5契約店との接続等契約店インフラの整備5.1(1)
6契約店との接続等コード決済の特性についての契約店への注意喚起5.1(2)
7契約店との接続等接続パターンに応じたデータ編集5.2
8契約店との接続等接続 API/電文の編集(定められた桁数への対応を含む。)5.3
9契約店との接続等事業者識別コードに基づいた電文仕向け/接続 API 呼び出し5.3
10セキュリティ本人認証プロセスの導入6.2
11セキュリティ利用者のモバイルデバイスとコード決済アプリの紐づけ6.2(2)
12セキュリティ利用者を特定するために必要な情報の受領・確認6.2(2)
13セキュリティ決済時における本人認証6.2(3)
14セキュリティオンラインによる表示処理(ただし、一時的なオフラインによる表示処理は一定の条件で許容)6.4(1)
15セキュリティ決済時における取引検証6.4(2)
16セキュリティ利用者への取引完了通知(ただし、具体的内容等については推奨レベル)6.4(3)
17セキュリティ事後的な不正検証に必要な情報・データの保存6.4(4)
18セキュリティシステム間の情報連携におけるリスク検証6.5
別紙 1
19セキュリティ(○)発見された脆弱性への対応6.5
20セキュリティシステム面・体制面でのセキュリティ対策6.6

4.決済関業者との通信電文

アプリからPOSや決済端末、決済業者のやりとりには次のような電文レイアウトで通信されています。

支払電文

リクエスト共通部
No項目属性必須
1要求ID数字Y
リクエスト部
No項目属性必須
1決済ID
(事業者仕分8桁+トークン部)
数字32桁以下Y
2契約店ID英数字Y
3契約店コード英数字Y
4端末コード英数字Y
5契約店レシート番号数字N
6契約店端末送信日時数字Y
7取引金額数字8桁Y

返金電文

リクエスト共通部
No項目属性必須
1要求ID数字Y
リクエスト部
No項目属性必須
1返金対象の要求ID数字32桁以下Y
2契約店ID英数字Y
3契約店コード英数字Y
4端末コード英数字Y
5契約店レシート番号数字N
6契約店端末送信日時数字Y
7取引金額数字8桁Y

確認・照会電文

リクエスト共通部
No項目属性必須
1要求ID数字Y
リクエスト部
No項目属性必須
1照会対象の要求ID数字32桁以下Y
2契約店ID英数字Y
3契約店コード英数字Y
4端末コード英数字Y
5契約店レシート番号数字N
6契約店端末送信日時数字Y

※照会なので取引金額は無い。

レスポンス
No項目属性必須
1結果コード数字Y
2結果メッセージ英数字Y
3取引番号英数字Y
4処理日時英数字Y
5取引金額数字8桁Y

コード決済に関する統一技術仕様ガイドライン【利用者提示型】CPM(Consumer-Presented Mode)の【表 5.3 コード決済関連事業者に共通の接続 API/電文項目等の代表例】より

コード決済に関する統一技術仕様ガイドライン【利用者提示型】CPM 更新情報

JPQRにおける店舗提示型(MPM(Merchant-Presented Mode))とは

店舗提示型[MPM(Merchant-Presented Mode)]とは
店舗掲示されたQRコードを、
利用者が読み取る方法のこと。

利用者が読み取るQRコードには、

  1. 中身が変わらない「静的QRコード」
  2. 時間や金額で異なる「動的QRコード」

の2種類があります。

JPQR「静的QRコード」とは

静的QRコードはこういうやつのこと。

レジ前に多数のQRコードのスタンドが並んでいるのを見たことがあると思います。

JPQRでは、乱立していたQRコードを次のような形で1つのQRコードに統一できます。

2021.1/20時点でJPQR(店舗提示型:静的QRコード)に対応している決済方法

決済サービスJPQR
(店舗提示型)
対応
加盟店手数料率等
(JPQR のWEB 受付システム)利用
マイナ
ポイント
atone対応済み2.4%(非課税)非対応
WeChat Pay対応済み1.2%(非課税)(2021 年 3 月 31 日まで)
1.5%(非課税)(2021 年4月以降)(※2)
非対応
au PAY対応済み無料(2021 年 7 月 31 日まで)
3.25%(税別)予定(2021 年 8 月以降)
対応
OKI Pay対応済み1.5%(税別)~1.8%(税別)(※2)非対応
UnionPay(銀聯)対応済み1.85%(非課税)(※2)非対応
こい Pay対応済みWEB 受付システム内手数料一覧参照(※2)非対応
Commoney対応済み3.25%(税別)非対応
J-Coin Pay対応済み1.85%(非課税)(※2)対応
d 払い対応済み2.585%(税込)(2020 年 7 月 31 日まで)
1.80%(税込)(2020 年 8 月 1 日~2021 年 6
月 30 日まで)
2.86%(税込)(2021 年 7 月以降)
対応
はま Pay対応済み2.0%(税別)(※2)非対応
FamiPay対応済み無料(2021 年 3 月 31 日まで)
2.94%(税別)(2021 年4月以降)(※2)
対応
PayPay対応済み1.99%(税込)(2021 年 3 月 31 日まで)
2.59%(税込)(2021 年 4 月 1 日~9 月 30日)
3.24%(税込)(2021 年 10 月以降)
(※2 (※4)
対応
ほくほく Pay
(北陸銀行・北海道銀行)
対応済みWEB 受付システム内手数料一覧参照(※2)非対応
Money Tap対応済み1.5%(非課税)(※2)非対応
メルペイ対応済み0%(2021 年 6 月末まで)
2.6%(税別)(2021 年 7 月以降)
対応
ゆうちょ Pay対応済みWEB 受付システム内手数料一覧参照 (※2)対応
YOKA!Pay
(福岡銀行のみ対象)
対応済みWEB 受付システム内手数料一覧参照 (※2)非対応
LINE Pay対応済み無料(2021 年 7 月 31 日まで)
2.45%(税別)予定(2021 年 8 月以降)
対応
楽天ペイ
(アプリ決済)
2020 年冬頃
対応予定
3.24%~ (※5)対応
(出典)経済産業省JPQR事業各社の利用開始時期、決済手数料率等の詳細はこちらより

JPQR「動的QRコード」とは

動的QRコードは下のツイートの右側のもの。↓

自動的にQRコードが生成されるもの。

JPQR「静的QRコード」と「動的QRコード」の仕様

JPQRにおける静的QRコードと動的QRコードの仕様は比較形式での方が分かりやすいので、まとめて仕様を書いていきます。

JPQR「静的QRコード」と「動的QRコード」の仕様

JPQRのQRコードのデータレイアウト

実際に上の「諏訪園」のQRコードをサンプルにレイアウトを見ていきましょう。

単純にこの「静的QRコード」を読み込むと下記のとおりになります。

00020101021126680019jp.or.paymentsjapan0113000073423115402040000030600000104060000005204XXXX53033925802JP5906suwaen6003XXX6107640837764130002JA0103諏訪園63047106

これをJPQR静的/動的QRコードのデータレイアウトに当てはめると次のとおりになります。

静的と動的の区別は「ID=01:フラグ」のみになります。

項目名ID存在内容サンプルデータ
仕様バージョン“00”必須“000201”000201
静的/動的フラグ“01”必須静的QRコード : “11”
動的QRコード : “12”
010211
契約店情報“26”-“51”必須“xx680019jp.or.paymentsjapan0113aaa aaaaaaaaaa0204bbbb0306cccccc0406 dddddd”
(2 桁の x には ID 番号が
(ID26 の場合は 26)、
13 桁の a には統一店舗識別コードの管理レベル 1 が、
4 桁の b には統一店舗識別コードの管理レベル 2 が、
6 桁の c には統一店舗識別コードの管理レベル 3 が、
6 桁の d には統一店舗識別コードの管理レベル 4 がそれぞれ入る。)

空いている領域のうち、もっとも若い ID 番号の領域にデータを格納する
(具体的な領域は協議会事務局が指定)。
その他の領域は、海外のコード決済事業者等
統一店舗識別コードを利用しない
コード決済事業者等のための領域となる。
26680019jp.or.paymentsjapan
管理レベル113 桁必須利用契約を締結する主体
例)〇〇株式会社
01130000734231154
管理レベル24 桁必須ブランド/法人内区分
例)〇〇屋
02040000
管理レベル36 桁必須契約店名
例)新橋 1 号店
0306000001
管理レベル46 桁必須3 番テーブル
動的:動的 QR コード表示端末
静的ステッカー番号等
0406000000
業種“52”必須契約店の業種(ISO 18245 に従った分類)5204XXXX
取引通貨“53”必須通貨コード(円 “392”)5303392
取引金額“54”任意取引金額(チップ除く)
国コード“58”必須国コード(日本 “JP”)5802JP
契約店名“59”必須英字表記による契約店名5906suwaen
契約店所在地“60”必須英字表記による契約店所在地6003XXX
契約店郵便番号“61”必須契約店所在地の郵便番号61076408377
契約店情報(日本語)“64”必須日本語による契約店に関する情報6413
使用言語“00”必須“0002JA”
Tag: 00 (項目 ID)
Length: 02
Value: JA (ISO639 上の日本語の言語コード)
0002JA
契約店名(日本語)“01”必須契約店ごとに協議会事務局が決定文字コードは UTF-8
<例>
契約店名が「キャッシュレス推進協議会」の場合:
“0112 キャッシュレス推進協議会”
Tag: 01 (項目 ID)
Length: 12 (契約店名の長さ)
Value: キャッシュレス推進協議会
0103諏訪園
チェックディジット“63”必須チェックディジット63047106
参考リンク

一般社団法人キャッシュレス推進協議会:コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM(Merchant-Presented Mode)

EMVCo:EMV®QR Code Specification for PaymentSystems (EMV QRCPS)

チェックディジットCRC(ASCII HEX CRC-16/CCITT-FALSE)計算機:Online CRC Calculator

QRコードの読み取り:Web便利ツール@ツールタロウ QRコード読み取り

QRコード作成:Web便利ツール@ツールタロウ QRコード生成

Base64エンコード・デコード:ラッコツールズ

参考ページ:JPQRを読んでみる

JPQRのガイドライン仕様

No.項目義務化レベル内容ガイドライン
該当箇所
静的動的
1表示データフォーマット(EMV 仕様(MPM) 準拠
及び
協議会事務局が定めた入力内容の入力)
2.1
2表示
(該当者のみ)
データフォーマット上、任意とされている項目について
入力を希望する場合への協議会事務局への
入力希望申請
2.1
3表示
(該当者のみ)
海外のコード決済事業者等の
統一店舗識別コードを利用しない
コード決済事業者が
統一 QR コードの利用を希望する際の
協議会事務局への申請
2.1
4表示
(該当者のみ)
EMV 仕様(MPM)において
自己の領域を確保されている決済事業者が
統一 QR コードの利用を希望する際の
協議会事務局への申請
2.1
5表示協議会が定めるデザインでの掲示2.2
6表示読み取り可能なサイズによる印刷。
1 セルあたり 0.33 ㎜以上必須。
1 セルあたり 0.5 ㎜以上が推奨。

【静的QR】
1 セルあたり4dot 以上。
2.2
7表示協議会が定める統一静的 QR コードの
デザインの変更等の禁止
2.2
8表示統一静的 QR コードのデザインの変更等の
禁止について契約店への明確な通知
2.2
9表示契約店が統一 QR コードのデザインの変更等を
行っていることを認識した場合における
契約店への指導。

【動的QR】
協議会事務局が承認した場合を除く。
2.2
10表示読み取りが適正に行われる品質保証対策2.3
11表示【動的QR】
十分な画面輝度による表示
2.3
12統一店舗識別コード統一店舗識別コードの発番申請3.2
13事業者識別コード事業者識別コードの取得又は登録4.2
14契約店との接続等【静的QR】
契約店への統一静的 QR コードの設置
【動的QR】
契約店への動的QRコード表示端末の設置
5.1
15契約店との接続等QR コードを用いたコード決済の
特性についての契約店への注意喚起
5.2
16契約店との接続等【動的QR】
コード決済サービスに応じた
契約店との接続
5.3
17セキュリティ本人認証プロセスの導入6.2
18セキュリティ利用者のモバイルデバイスと
コード決済アプリの紐づけ
6.2(2)
19セキュリティ利用者を特定するために
必要な情報の受領・確認
6.2(2)
20セキュリティ決済時における本人認証6.2(3)
21セキュリティ静的 QR コードの不正な
貼り換え、偽造等への対策
6.3
22セキュリティ決済時における取引検証6.4(1)
23セキュリティ決済完了画面の偽造防止等6.4(2)
24セキュリティ契約店への取引確認手段の提供
(ただし、具体的内容等については
 推奨レベル)
6.4(3)
25セキュリティ【動的QR】
契約店への取引確認手段の
提供に必要な接続 API の開発
6.3(3)
26セキュリティ利用者への取引完了通知
(ただし、具体的内容等については
 推奨レベル)
6.4(4)
27セキュリティ事後的な不正検証に
必要な情報・データの保存
6.4(5)
28セキュリティシステム間の情報連携における
リスク検証
6.5
別紙 1
29セキュリティ(○)発見された脆弱性への対応6.5
30セキュリティシステム面・体制面での
セキュリティ対策
6.6

決済関業者との決済完了確認手段(接続 API リクエスト例)

決済完了したかどうかの確認には、APIリクエストで次のような内容を送ります。

No項目名属性必須説明
1notification_type英数字Y“Transaction”固定
2BizCode英数字Y契約店 ID
3storeCode英数字N契約店コード
4termCode英数字N端末コード
5transId英数字Y取引番号
6receiptNo英数字N契約店レシート番号
7transTime英数字N処理日時(取引成功時のみ)
8Amount数字Y取引金額
9Result英数字Y“COMPLETED”, “FAILED”

コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM(Merchant-Presented Mode)の【表 6.3(3)-2 決済完了確認手段の提供における接続 API リクエスト項目の代表例】より

APIについてはオンライン完結の本人認証で口座開設!eKYCと銀行APIって何?にも概要を記載していますのでご参考まで。

コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM

請求書払い(バーコード)

2020.4/27に、店舗提示型(MPM)のガイドラインの改定が行われ、
請求書払い(バーコード)
についてのガイドラインが追加されました。

請求書払い(バーコード)とは

請求書払い(バーコード)とは、次のような納付書をpaypayなど対応アプリでバーコードを読み取って支払う方法のことです。

バーコード入り納付書のサンプル。バーコードが下のほうに入っています
(出典)鳥取県米子市 固定資産税納付書サンプル「スマホ決済がはじまります(令和2年4月)」より

請求書払い(バーコード)対応決済サービス一覧

対応している決済事業者は次のとおり。

決済提供事業者サービス名引落対応金融機関取り扱い可能な税金
/公共料金
KDDIau PAY請求書支払い
(au PAY 残高での支払い)
auじぶん銀行リンク
ウェルネット支払秘書リンクリンク
ビリングシステムPayBリンク請求書(公共料金等)
税金等(自治体)
その他一般企業
PayPayPayPay請求書払いリンクリンク
(請求書払いタブ)
NTTデータモバイルレジリンクリンク
LINE PayLINE Pay請求書支払いリンクリンク
楽天銀行楽天銀行コンビニ支払サービス(アプリで払込票支払)リンクリンク

JPQRに規程されている請求書払い(バーコード)ガイドライン

「コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM(Merchant-Presented Mode)」に直接バーコードの仕様は規程されていません。

「コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM」には、

請求書払い(バーコード)に使用されるバーコード及び当該バーコードが印刷され
た請求書(払込票)の仕様は、代理収納ガイドラインに従うものとする。

2 請求書払い(バーコード)の仕様より

とあるとおり、細かなバーコードの仕様は「公共料金等代理収納GS1-128(旧:UCC/EAN-128)システム」に基づく形になります。

また、請求書払い(バーコード)の利用方法の周知(誤認の防止)として

コンビニエンスストアや金融機関等に請求書(払込票)を持ち込んで支払う場合コード決済サービスが利用できると誤認しないように、かかるコード決済における請求書払い(バーコード)の利用方法を利用者に周知する等かかる誤認を防ぐ

3.1 請求書払い(バーコード)の利用方法の周知(誤認の防止)より

や、二重支払いの防止として

コード決済における請求書払いでは、利用者が自身のモバイルデバイスを用いて決済を行うため、かかる受領証(領収書)の交付作業を行うことができない。そこで、コード決済事業者は、利用者が二重支払い(窓口納付とコード決済の二重納付)を行ってしまわないように、受領書に代わる決済完了通知を行わなければならない

かかる通知はセキュリティ対策の 1 つとしての利用者への取引通知を兼ねる

3.2 二重支払いの防止より

などが規程されています。

GS1-128による標準料金代理収納ガイドライン(第3版)のバーコード仕様

請求書払い(バーコード)におけるバーコードの仕様は「代理収納ガイドラインに従う」とあり、一般に「GS1-128による標準料金代理収納ガイドライン(第3版)」に基づきバーコードを印字することになります。

「GS1-128による標準料金代理収納ガイドライン」では次のとおり規程されています。

JPQR まとめ

このJPQRに準拠したスキーム「SmartCode」を主導しているのがJCBですが、

これに統一されるかどうかは別にしても、

全てのQRコード決済はJPQRに統合してほしいものです。

ただし、静的QRコードでなく利用者提示型で進めていって欲しいです。

静的QRコードの問題点

問題点は2点。

  • 悪用
  • 利用方法の煩雑さ

悪用についてはgooニュース「QRコード詐欺」にご用心 簡単な手口で多発する被害にもあるとおり、これまで書いてきた仕様に基づいてシールを張り替えてしまえば決済できてしまうこと。

利用方法の煩雑さについては皆さんも記憶に新しいこのツイートの件。

利用者提示型のJPQRの動的QRコードを、どの店舗でも普及することを願います。

本記事における参考リンクが多岐にわたるので、次のとおりまとめて置いておきます。

参考リンク一覧

【推進機関】
総務省統一QR「JPQR」普及事業
一般社団法人キャッシュレス推進協議会「JPQRについて」
 ※ガイドライン最新はここに掲載される

【ガイドライン】
コード決済に関する統一技術仕様ガイドライン【利用者提示型】CPM(Consumer-Presented Mode)
コード決済に関する統一技術仕様ガイドライン【店舗提示型】MPM(Merchant-Presented Mode)
・EMVCo:EMV®QR Code Specification for PaymentSystems (EMV QRCPS)

【ツール】
・チェックディジットCRC(ASCII HEX CRC-16/CCITT-FALSE)計算機:Online CRC Calculator
・QRコードの読み取り:Web便利ツール@ツールタロウ QRコード読み取り
・QRコード作成:Web便利ツール@ツールタロウ QRコード生成
・Base64エンコード・デコード:ラッコツールズ

【参考ページ】
・参考ページ:JPQRを読んでみる



この記事を読んだ人はこの記事も読んでいます。

クレジットカードやキャッシュレス、マイナンバー等のまとめ
日々の情報で役立つ「マイナンバー」や「クレジットカード」、「キャッシュレス決済」から「区画整理」まで、様々なお得情報をまとめています。
雑記
この記事を書いた人
ぬくぬく

家族の終活、介護、相続を1世代早く経験した30代サラリーマン。

【終活・介護・相続】
 ここ5年ほど、祖父の「終活」「介護」「相続」に取り組んできました。
 艱難辛苦した経験を書いています。

【投資・資産運用】
 2019年6月の老後2000万問題から、投資・資産運用を開始。
 家計の見直しで1年間で400万円貯めました!
 「米国ETF」と「全世界投資」でハイブリッド運用中!

ぬくぬくをフォローする
シェアする
スポンサーリンク
'}function p(){return z.documentElement.clientHeight?z.documentElement.clientHeight:Math.round(A.height())}function q(a){var b=v();b&&(27===a.keyCode&&b.options("esc")&&b.close(),9===a.keyCode&&r(a,b))}function r(a,b){var c=b.element().find(G),d=c.index(z.activeElement);a.shiftKey&&d<=0?(c.get(c.length-1).focus(),a.preventDefault()):a.shiftKey||d!==c.length-1||(c.get(0).focus(),a.preventDefault())}function s(){b.each(D,function(a,b){b.resize()})}function t(a){1===D.unshift(a)&&(C.addClass("lity-active"),A.on({resize:s,keydown:q})),b("body > *").not(a.element()).addClass("lity-hidden").each(function(){var a=b(this);void 0===a.data(F)&&a.data(F,a.attr(E)||null)}).attr(E,"true")}function u(a){var c;a.element().attr(E,"true"),1===D.length&&(C.removeClass("lity-active"),A.off({resize:s,keydown:q})),D=b.grep(D,function(b){return a!==b}),c=D.length?D[0].element():b(".lity-hidden"),c.removeClass("lity-hidden").each(function(){var a=b(this),c=a.data(F);c?a.attr(E,c):a.removeAttr(E),a.removeData(F)})}function v(){return 0===D.length?null:D[0]}function w(a,c,d,e){var f,g="inline",h=b.extend({},d);return e&&h[e]?(f=h[e](a,c),g=e):(b.each(["inline","iframe"],function(a,b){delete h[b],h[b]=d[b]}),b.each(h,function(b,d){return!d||(!(!d.test||d.test(a,c))||(f=d(a,c),!1!==f?(g=b,!1):void 0))})),{handler:g,content:f||""}}function x(a,e,f,g){function h(a){k=b(a).css("max-height",p()+"px"),j.find(".lity-loader").each(function(){var a=b(this);c(a).always(function(){a.remove()})}),j.removeClass("lity-loading").find(".lity-content").empty().append(k),m=!0,k.trigger("lity:ready",[l])}var i,j,k,l=this,m=!1,n=!1;e=b.extend({},H,e),j=b(e.template),l.element=function(){return j},l.opener=function(){return f},l.options=b.proxy(d,l,e),l.handlers=b.proxy(d,l,e.handlers),l.resize=function(){m&&!n&&k.css("max-height",p()+"px").trigger("lity:resize",[l])},l.close=function(){if(m&&!n){n=!0,u(l);var a=B();if(g&&(z.activeElement===j[0]||b.contains(j[0],z.activeElement)))try{g.focus()}catch(a){}return k.trigger("lity:close",[l]),j.removeClass("lity-opened").addClass("lity-closed"),c(k.add(j)).always(function(){k.trigger("lity:remove",[l]),j.remove(),j=void 0,a.resolve()}),a.promise()}},i=w(a,l,e.handlers,e.handler),j.attr(E,"false").addClass("lity-loading lity-opened lity-"+i.handler).appendTo("body").focus().on("click","[data-lity-close]",function(a){b(a.target).is("[data-lity-close]")&&l.close()}).trigger("lity:open",[l]),t(l),b.when(i.content).always(h)}function y(a,c,d){a.preventDefault?(a.preventDefault(),d=b(this),a=d.data("lity-target")||d.attr("href")||d.attr("src")):d=b(d);var e=new x(a,b.extend({},d.data("lity-options")||d.data("lity"),c),d,z.activeElement);if(!a.preventDefault)return e}var z=a.document,A=b(a),B=b.Deferred,C=b("html"),D=[],E="aria-hidden",F="lity-"+E,G='a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])',H={esc:!0,handler:null,handlers:{image:i,inline:j,youtube:k,vimeo:l,googlemaps:n,facebookvideo:m,iframe:o},template:''},I=/(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|avif|bmp|ico|tiff?)(\?\S*)?$)/i,J=/(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i,K=/(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/,L=/((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i,M=/(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i,N=function(){var a=z.createElement("div"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return b[c];return!1}();return i.test=function(a){return I.test(a)},y.version="2.4.1",y.options=b.proxy(d,y,H),y.handlers=b.proxy(d,y,H.handlers),y.current=v,b(z).on("click.lity","[data-lity]",y),y});
タイトルとURLをコピーしました