PayPal Tech Meetup #2 の発表内容です。 PayPal Adaptive API とAWSを利用して個人でも簡単に複雑なシステムを実装できます。
PayPal APIとAWSで作る動画コンテンツマーケットPayPal Tech Meetup #2タケユー・ウェブ ⽵内雄⼀
View Slide
⽵内雄⼀@タケユー・ウェブ• 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がPrimaryreceiverに⽀払い• Primary receiverが受け取った⾦額の⼀部をSecondary receiverに送⾦• SenderからはSecndaryreceiverは⾒えない※本番での利⽤には審査が必要だそうです。
Ruby SDK• gem ʻpaypal-sdk-adaptivepaymentsʼapi = PayPal::SDK::AdaptivePayments.newpay = 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• 僕のような個⼈開発者でも⾼機能なサービスを簡単に構築できて最⾼• 儲かるサービスを作りたい• 参考になれば!