Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PayPal API と AWSで作る動画コンテンツマーケット
Search
Yuichi Takeuchi
June 15, 2016
Technology
1
3.7k
PayPal API と AWSで作る動画コンテンツマーケット
PayPal Tech Meetup #2 の発表内容です。
PayPal Adaptive API とAWSを利用して個人でも簡単に複雑なシステムを実装できます。
Yuichi Takeuchi
June 15, 2016
Tweet
Share
More Decks by Yuichi Takeuchi
See All by Yuichi Takeuchi
現実のRuby/Railsアップグレード外伝 ~そして僕はforkした~
takeyuweb
0
67
現実のRuby/Railsアップグレード
takeyuweb
4
6.8k
Shinjuku.rb #95 LT会!心の技術書を紹介しよう!
takeyuweb
0
40
リモートワークへの招待
takeyuweb
2
520
OSSにみるレールの外側
takeyuweb
0
200
Rails meets Content Security Policy
takeyuweb
1
520
Rails受託会社を作っている話
takeyuweb
0
110
社長が書いたクソコードたち
takeyuweb
0
1.8k
Rails 考古学:WebAPIを取り巻く環境の変化とRailsの対応について
takeyuweb
0
78
Other Decks in Technology
See All in Technology
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
TypeScript、上達の瞬間
sadnessojisan
46
13k
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
強いチームと開発生産性
onk
PRO
33
11k
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
180
Lexical Analysis
shigashiyama
1
150
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
580
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Speed Design
sergeychernyshev
24
610
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Optimizing for Happiness
mojombo
376
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Six Lessons from altMBA
skipperchong
27
3.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
BBQ
matthewcrist
85
9.3k
Transcript
PayPal APIとAWSで作る 動画コンテンツマーケット PayPal Tech Meetup #2 タケユー・ウェブ ⽵内雄⼀
⽵内雄⼀@タケユー・ ウェブ • Web開発者です • フリーランス(8年) • Rails / Movable
Type / AWS etc…
タケユー・ウェブ 株式会社 • 6⽉3⽇に法⼈成りしました! • https://takeyuweb.co.jp/ • ありがとうございます!ありがと うございます!
動画コンテンツマーケット (デモ)を1⽇で作った話
動画コンテンツマーケット概要 • 利⽤者が動画をアップロード • システムが配信⽤の動画形式(HTTP Live Streaming⽤)に⾃ 動変換し、商品として登録 • 視聴者は興味のある動画を購⼊し、ブラウザ上でストリーミン
グ再⽣ • 売り上げから運営者とPayPalそれぞれの⼿数料を引いた残りが、 投稿者のPayPalアカウントに送⾦される • 売り上げを配分するシステムが必要!
動画コンテンツマーケット概要
動画コンテンツマーケット概要
必要な機能 • 販売者登録(報酬⼊⾦先登録など) • 動画登録 • アップロード • 動画変換(ストリーミング⽤など) •
決済 • 代⾦⽀払い • ⼊⾦後処理(動画の視聴権限追加) • 売り上げの分配 • 結構⾯倒。なるべく⾃動化して⼿間をかけずにやりたい!
デモ 作ったものをみせます。
PayPal API実装について PayPal APIを使って簡単な決済機能を実装!
PayPal Adaptive API • 送り⼿から1⼈以上の受け⼿への送⾦を処理する • 連鎖⽀払い(Chained Payments) • SenderがPrimary
receiverに⽀払い • Primary receiverが受け 取った⾦額の⼀部を Secondary receiverに送 ⾦ • SenderからはSecndary receiverは⾒えない ※本番での利⽤には審査が必要だそうです。
Ruby SDK • gem ʻpaypal-sdk-adaptivepaymentsʼ api = PayPal::SDK::AdaptivePayments.new pay =
api.build_pay({ :actionType => 'PAY', # (省略) :receiverList => { :receiver => [ { # まず全額を運営者が受け取って :paymentType => 'DIGITALGOODS', :amount => @video.price, :email => "
[email protected]
", :primary => true }, { # 2割を投稿者に⽀払う :paymentType => 'DIGITALGOODS', :amount => (@video.price * 0.8).floor, :email => @video.seller.paypal_email, :primary => false } ] }, # (省略) }) @pay_key = response.payKey
決済と報酬分配 • 動画の視聴権限がなければ PayPalボタン • ボタンを押すとPayPal決済スタート • 決済完了後、Webアプリで結果を受け取り、権限割り当て • 報酬分配はAdaptivePayment
APIのChained Paymentsだけで 実装可能!
PayPal for Digital Goods • ダウンロード販売時の⼿数料がお得になる(かも)サービス • 通常のPayPal⼿数料 • 3.6%
+ \40 JPY • 150円の商品を販売した場合、⼿数料 45円。 • 40円の固定部分が⾼いです・・・ • ⼩額決済⽤⼿数料 • 5% + \7 JPY • 150円の商品を販売した場合、⼿数料 15円。 • 少額決済の時にはこの差は⼤きい! • ダウンロード販売時、どちらか安い⽅を⾃動的に適⽤してくれるの でもちろん使う • 専⽤の決済URLがある
AWSについて ⾯倒なインフラ管理はクラウドコンピューティングにおまかせ
AWSについて • S3 • SNS • Elastic Transcoder • OpsWorks
S3 • クラウドストレージ • アップロード動画保管先 • 変換済み動画保管先 • 署名付きURL機能で権限のある⼈にだけDLさせることも
SNS • Pub-Sub • AWS上各サービスのイベント(やAPIからの)でPush • メッセージ受け取り⽤のURL、メール等をたたく
Elastic Transcoder • 動画変換サービス • S3上にアップロードしておいた動画ファイルを変換して、S3に 書き出す • 同時にサムネイルも作れます •
ffmpegの保守にウンザリしている貴兄に!
OpsWorks • Chefベースの構成管理ツール • サーバー管理の⾃動化 • オートスケール、スケジューリングなど • 今回はRailsアプリサーバをデプロイ
まとめ
まとめ • PayPal API • Ruby SDKがあってよかった • REST API⽤もある→gem
'paypal-sdk-restʻ • Adaptive PaymentsはREST API対応してないの? • 以前Perlで触ったときは公式SDKがなくつらかった • いろんな機能があってとっつき⾟かった • 単なる⽀払い以上のことが簡単に実装できて楽しかった • AWS • 僕のような個⼈開発者でも⾼機能なサービスを簡単に構築できて最⾼ • 儲かるサービスを作りたい • 参考になれば!