Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Chromeウェブストア - Html5とか勉強会42
Report
Yoichiro Tanaka
Follow
Software Engineer at Increments, Inc.
Sep. 25, 2013
•
0 likes
8 likes
×
Be the first to like this
Show More
•
2,410 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
オンラインゲームソリューション@トレジャーデータ
Takahiro Inoue
Firefox Marketplace and Payment
dynamis
XOOPS EC Distribution
Yoshi Sakai
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
SocialWeb Conference vol.5 OpenSocial Night #2
Nobuhiro Nakajima
Google Play Game Servicesについて
Kenzo Ishii
Data apiで実現 進化するwebの世界
Yuji Takayama
Navigate users from assistant app to android app
Yoichiro Tanaka
1
of
54
Top clipped slide
Chromeウェブストア - Html5とか勉強会42
Sep. 25, 2013
•
0 likes
8 likes
×
Be the first to like this
Show More
•
2,410 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Business
Yoichiro Tanaka
Follow
Software Engineer at Increments, Inc.
Advertisement
Advertisement
Advertisement
Recommended
Search Engine Marketing: How Insurance Agents Can Take Advantage
mmahan
770 views
•
12 slides
2008 09 Grandparents Day
kcetling
502 views
•
33 slides
Info scoop opensource
Yoichiro Tanaka
961 views
•
43 slides
Sun Tech Days 2007 Mash up
Yoichiro Tanaka
721 views
•
17 slides
Prakash Belawadi - Manifesto BBMP 2010 elections
pramodbiligiri
1.7K views
•
12 slides
St. Anthony's Catholic School Field Day 2008
kcetling
549 views
•
200 slides
More Related Content
Similar to Chromeウェブストア - Html5とか勉強会42
(7)
オンラインゲームソリューション@トレジャーデータ
Takahiro Inoue
•
7.8K views
Firefox Marketplace and Payment
dynamis
•
2.3K views
XOOPS EC Distribution
Yoshi Sakai
•
1.6K views
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
•
1.5K views
SocialWeb Conference vol.5 OpenSocial Night #2
Nobuhiro Nakajima
•
1.4K views
Google Play Game Servicesについて
Kenzo Ishii
•
9.6K views
Data apiで実現 進化するwebの世界
Yuji Takayama
•
2.2K views
More from Yoichiro Tanaka
(12)
Navigate users from assistant app to android app
Yoichiro Tanaka
•
482 views
Chrome Extensionsの基本とデザインパターン
Yoichiro Tanaka
•
1.5K views
Chrome Extensionsから見るWebExtensions
Yoichiro Tanaka
•
1.3K views
Yapc
Yoichiro Tanaka
•
1K views
SocialWeb-Japan Vol.2 20090428
Yoichiro Tanaka
•
788 views
JRuby on Rails
Yoichiro Tanaka
•
2K views
JavaEdge第3回ライブセッション
Yoichiro Tanaka
•
889 views
maven2+aptで楽々ドキュメント
Yoichiro Tanaka
•
685 views
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
•
1.2K views
体操競技のルール改正と今後の日本の方向性
Yoichiro Tanaka
•
2.2K views
Wicket勉強会2
Yoichiro Tanaka
•
1.4K views
世間の荒波を乗りこなせ!
Yoichiro Tanaka
•
1.5K views
Advertisement
Recently uploaded
(20)
20230516 @Mix Leap Hirohiko_Suwa
Masashi Nakagawa
•
82 views
ChatGPT以後の時代をどう生きるか PWA Night vol.51
hedachi
•
60 views
PCベース制御による集中制御.pdf
ssusercd9928
•
19 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
111 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
91 views
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
•
12 views
①【阳光海岸大学毕业证文凭学位证书|工艺完美复刻】
vgh215w
•
2 views
ヘッドレス化したbaserCMS5とその機能
Ryuji Egashira
•
10 views
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
352 views
①【汤普森河大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
3 views
①【戴尔豪斯大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
112 views
☀️【麦吉尔大学毕业证成绩单留学生首选】
15sad
•
3 views
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 views
留信网认证可查【拜欧拉大学文凭证书毕业证购买】
1lkjhg
•
3 views
量子論.pdf
hiro150493
•
0 views
オレオレになりがちなテスト計画を見直した話
terahide
•
25 views
Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア
• Hostedアプリ – Webサーバから必要なファイルが提供される •
Packagedアプリ – 必要なファイル群がChromeにインストールさ れる • 拡張機能 – Chromeに便利な機能を追加する
The Chrome Web
Store lets you publish apps and games – either free or paid – where Google Chrome users can easily find them.
開発者 ユーザー 登録
The Chrome Web
Store lets you publish apps and games – either free or paid – where Google Chrome users can easily find them.
開発者 ユーザー発見
開発者 ユーザー発見 利用
The Chrome Web
Store lets you publish apps and games – either free or paid – where Google Chrome users can easily find them.
開発者 ユーザー
開発者 ユーザー 決済機能の 開発が必要
開発者 ユーザー
開発者 ユーザー
種別 アプリでの利用 拡張機能での利用 アプリ自体の販売 (1回、定期購入) ○
× アプリ内課金 (デジタルグッズなどの販 売) ○ ○ 広告の掲載 ○ ○
アプリ自体の販売 ・・・Chromeウェブストア決済
• 1回払い • 月間登録料 •
年間登録料 • 無料試用版
無料試用版
• Hostedアプリ – Licensing
API • Packagedアプリ – 機能制限版とフル機能版の2つをリリース
Licensing API • OpenID認証を行う •
ライセンスサーバにリクエストを送る • 購入状況によって機能を制限する
https://www.googleapis.com /chromewebstore/v1/licenses/[AppId]/[UserID]
https://www.googleapis.com /chromewebstore/v1/licenses/[AppId]/[UserID] + 署名
# Licensing APIのエンドポイント ENDPOINT
= 'https://www.googleapis.com/chromewebstore/v1/licenses' # アプリID APP_ID = '...' # OAuthトークン OAUTH_TOKEN = '...' # OAuthトークンシークレット OAUTH_TOKEN_SECRET = '...' # ユーザーのOpenID URL文字列 user_id = ... # OAuthクライアントの生成 client = Signet::OAuth1::Client.new( :client_credential_key => 'anonymous', :client_credential_secret => 'anonymous', :token_credential_key => OAUTH_TOKEN, :token_credential_secret => OAUTH_TOKEN_SECRET ) # リクエストの送信 response = client.fetch_protected_resource( :uri => "ENDPOINT/#{app_id}/#{CGI::escape(user_id)}" ) # 結果の取得 result = JSON.parse(response.body)
{ "kind": "chromewebstore#license", "id": "appId/userId", "appId":
"appId", "userId": "userId", "result": "YES", "accessLevel": "FULL", "maxAgeSecs": "3600", }
result値 accessLevel値 状況 YES
FULL ユーザーはアプリに課金している。 YES FREE_TRIAL ユーザーはアプリに課金してなく、 無料試用版を使うべき。 NO NONE ユーザーはアプリに課金してなく、 アプリにアクセスしていない。
アプリ内課金 ・・・Google In-App Payments
API for Web
開発者のサーバ 星を手に入れる 購入 ① ② APIコール ③ Googleのサーバ 開発者のサーバ 通知 ④ 通知 ⑤ 星を手に入れた! ⑥ JWTの生成
{ "iss": "購入者ID", "aud": "Google", "typ":
"google/payments/inapp/item/v1", "exp": "1358678162", "iat": "1358674585", "request": { "name": "Red potion", "description": "It increases the hit point.", "price": "2.50", "currencyCode": "USD", "sellerData": "user_id:123,transaction_id:98765" } }
SELLER_IDENTIFIER = '販売者
ID' SELLER_SECRET = '販売者の秘密鍵' token = JWT.encode( { 'iss' => SELLER_IDENTIFIER, 'aud' => 'Google', 'typ' => 'google/payments/inapp/item/v1', 'exp' => (Time.now + 3600).to_i, 'iat' => Time.now.to_i, 'request' => { 'name' => 'Red potion', 'description' => 'It increases the hit point.', 'price' => '2.50', 'currencyCode' => 'USD', 'sellerData' => 'user_id =>123,transaction_id =>98765' } }, SELLER_SECRET)
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.ey Jpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzO DAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19y b290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1 p1r_wW1gFWFOEjXk
開発者のサーバ 星を手に入れる 購入 ① ② APIコール ③ Googleのサーバ 開発者のサーバ 通知 ④ 通知 ⑤ 星を手に入れた! ⑥ buy()関数の 呼び出し 購入画面
<script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('payments',
'1.0', { 'packages': ['sandbox_config'] }); </script>
var generatedJwt =
...; document.getElementById("buy").onclick = function(evt) { purchase(); }; function purchase() { ... goog.payments.inapp.buy({ jwt: generatedJwt, success: function(result) { ... }, failure: function(result) { ... } }); }
開発者のサーバ 星を手に入れる 購入 ① ② APIコール ③ Googleのサーバ 開発者のサーバ 通知 ④ 通知 ⑤ 星を手に入れた! ⑥ ポストバック URLの呼び出 し
{ "iss": "Google", "aud": "購入者ID", "typ":
"google/payments/inapp/item/v1/postback/buy", "exp": "1358678162", "iat": "1358674585", "request": { "name": "Red potion", "description": "It increases the hit point.", "price": "2.50", "currencyCode": "USD", "sellerData": "user_id:12345,transaction_id:98765" }, "response": { "orderId": "3485709183457474939449" } }
SELLER_SECRET = '販売者の秘密鍵' encoded_jwt
= params['jwt'] item_token = JWT.decode(encoded_jwt, SELLER_SECRET) order_id = item_token['response']['orderId'] # デコードされた内容に基づいて、注文内容を確認し、 # 必要があればデータベースに注文完了を書き込む render text: order_id
開発者のサーバ 星を手に入れる 購入 ① ② APIコール ③ Googleのサーバ 開発者のサーバ 通知 ④ 通知 ⑤ 星を手に入れた! ⑥ コールバック 関数の呼び出 し
var generatedJwt =
...; document.getElementById("buy").onclick = function(evt) { purchase(); }; function purchase() { ... goog.payments.inapp.buy({ jwt: generatedJwt, success: function(result) { ... }, failure: function(result) { ... } }); }
• Hostedアプリ – Available. •
Packagedアプリ – Can use on the dev channel.
Tax
付加価値税 • 購入するユーザーと開発者の直接契約 – 納税する責任は開発者にある
国ごとに法律が異なる • 税率の違い • 購入者が国外にいた時の扱い •
納税免除の下限額の違い ・・・知らなかった、では済まされない
• 田中 洋一郎 –
Google Developers Expert (Chrome) – LINE株式会社 開発1センター所属
End
Advertisement