$30 off During Our Annual Pro Sale. View Details »

PayPal API と AWSで作る動画コンテンツマーケット

PayPal API と AWSで作る動画コンテンツマーケット

PayPal Tech Meetup #2 の発表内容です。
PayPal Adaptive API とAWSを利用して個人でも簡単に複雑なシステムを実装できます。

Yuichi Takeuchi

June 15, 2016
Tweet

More Decks by Yuichi Takeuchi

Other Decks in Technology

Transcript

  1. PayPal APIとAWSで作る
    動画コンテンツマーケット
    PayPal Tech Meetup #2
    タケユー・ウェブ ⽵内雄⼀

    View Slide

  2. ⽵内雄⼀@タケユー・
    ウェブ
    • Web開発者です
    • フリーランス(8年)
    • Rails / Movable Type / AWS etc…

    View Slide

  3. タケユー・ウェブ
    株式会社
    • 6⽉3⽇に法⼈成りしました!
    • https://takeyuweb.co.jp/
    • ありがとうございます!ありがと
    うございます!

    View Slide

  4. 動画コンテンツマーケット
    (デモ)を1⽇で作った話

    View Slide

  5. 動画コンテンツマーケット概要
    • 利⽤者が動画をアップロード
    • システムが配信⽤の動画形式(HTTP Live Streaming⽤)に⾃
    動変換し、商品として登録
    • 視聴者は興味のある動画を購⼊し、ブラウザ上でストリーミン
    グ再⽣
    • 売り上げから運営者とPayPalそれぞれの⼿数料を引いた残りが、
    投稿者のPayPalアカウントに送⾦される
    • 売り上げを配分するシステムが必要!

    View Slide

  6. 動画コンテンツマーケット概要

    View Slide

  7. 動画コンテンツマーケット概要

    View Slide

  8. 必要な機能
    • 販売者登録(報酬⼊⾦先登録など)
    • 動画登録
    • アップロード
    • 動画変換(ストリーミング⽤など)
    • 決済
    • 代⾦⽀払い
    • ⼊⾦後処理(動画の視聴権限追加)
    • 売り上げの分配
    • 結構⾯倒。なるべく⾃動化して⼿間をかけずにやりたい!

    View Slide

  9. デモ
    作ったものをみせます。

    View Slide

  10. PayPal API実装について
    PayPal APIを使って簡単な決済機能を実装!

    View Slide

  11. PayPal Adaptive API
    • 送り⼿から1⼈以上の受け⼿への送⾦を処理する
    • 連鎖⽀払い(Chained Payments)
    • SenderがPrimary
    receiverに⽀払い
    • Primary receiverが受け
    取った⾦額の⼀部を
    Secondary receiverに送

    • SenderからはSecndary
    receiverは⾒えない
    ※本番での利⽤には審査が必要だそうです。

    View Slide

  12. 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

    View Slide

  13. 決済と報酬分配
    • 動画の視聴権限がなければ PayPalボタン
    • ボタンを押すとPayPal決済スタート
    • 決済完了後、Webアプリで結果を受け取り、権限割り当て
    • 報酬分配はAdaptivePayment APIのChained Paymentsだけで
    実装可能!

    View Slide

  14. PayPal for Digital Goods
    • ダウンロード販売時の⼿数料がお得になる(かも)サービス
    • 通常のPayPal⼿数料
    • 3.6% + \40 JPY
    • 150円の商品を販売した場合、⼿数料 45円。
    • 40円の固定部分が⾼いです・・・
    • ⼩額決済⽤⼿数料
    • 5% + \7 JPY
    • 150円の商品を販売した場合、⼿数料 15円。
    • 少額決済の時にはこの差は⼤きい!
    • ダウンロード販売時、どちらか安い⽅を⾃動的に適⽤してくれるの
    でもちろん使う
    • 専⽤の決済URLがある

    View Slide

  15. AWSについて
    ⾯倒なインフラ管理はクラウドコンピューティングにおまかせ

    View Slide

  16. AWSについて
    • S3
    • SNS
    • Elastic Transcoder
    • OpsWorks

    View Slide

  17. S3
    • クラウドストレージ
    • アップロード動画保管先
    • 変換済み動画保管先
    • 署名付きURL機能で権限のある⼈にだけDLさせることも

    View Slide

  18. SNS
    • Pub-Sub
    • AWS上各サービスのイベント(やAPIからの)でPush
    • メッセージ受け取り⽤のURL、メール等をたたく

    View Slide

  19. Elastic Transcoder
    • 動画変換サービス
    • S3上にアップロードしておいた動画ファイルを変換して、S3に
    書き出す
    • 同時にサムネイルも作れます
    • ffmpegの保守にウンザリしている貴兄に!

    View Slide

  20. OpsWorks
    • Chefベースの構成管理ツール
    • サーバー管理の⾃動化
    • オートスケール、スケジューリングなど
    • 今回はRailsアプリサーバをデプロイ

    View Slide

  21. まとめ

    View Slide

  22. まとめ
    • PayPal API
    • Ruby SDKがあってよかった
    • REST API⽤もある→gem 'paypal-sdk-restʻ
    • Adaptive PaymentsはREST API対応してないの?
    • 以前Perlで触ったときは公式SDKがなくつらかった
    • いろんな機能があってとっつき⾟かった
    • 単なる⽀払い以上のことが簡単に実装できて楽しかった
    • AWS
    • 僕のような個⼈開発者でも⾼機能なサービスを簡単に構築できて最⾼
    • 儲かるサービスを作りたい
    • 参考になれば!

    View Slide