SlideShare a Scribd company logo
1 of 52
PayPal導入事例
CrowdWorks編
自己紹介
Github: ToruIwashita
所属: 株式会社クラウドワークス
趣味: dotfilesいじり
OSS: git-switcher.vim
CrowdWorks
というサービス
サービス概要
2013/03/22〜
日本最大級のクラウドソーシングサービス
ユーザー数113万人以上
マザーズ上場: 2014/12/12
CrowdWorks
ネット上で仕事を依頼し、納品してもらう
ネット上で仕事を依頼し、納品してもらう
ネット上で仕事を依頼し、納品してもらう
ネット上で仕事を依頼し、納品してもらう
お金を預かる部分がサービスの肝
お金を預かるために決済を行う
仕事発注にオプションがあり、これも決済対象
預かったお金が報酬となり、ユーザーへ送金
CrowdWorksの決済について
銀行振込
クレジットカード決済
PayPal決済
決済の種類(サービスリリース時〜)
PayPal決済の
規模
Mar-12
Jun-12
Sep-12
Dec-12
Mar-13
Jun-13
Sep-13
Dec-13
Mar-14
Jun-14
Sep-14
Dec-14
Mar-15
Jun-15
Sep-15
Dec-15
Mar-16
Jun-16
Sep-16
PayPal決済数
Mar-12
Jun-12
Sep-12
Dec-12
Mar-13
Jun-13
Sep-13
Dec-13
Mar-14
Jun-14
Sep-14
Dec-14
Mar-15
Jun-15
Sep-15
Dec-15
Mar-16
Jun-16
Sep-16
PayPal決済数
Mar-12
Jun-12
Sep-12
Dec-12
Mar-13
Jun-13
Sep-13
Dec-13
Mar-14
Jun-14
Sep-14
Dec-14
Mar-15
Jun-15
Sep-15
Dec-15
Mar-16
Jun-16
Sep-16
PayPal決済数
クレカのUX改善
Mar-12
Jun-12
Sep-12
Dec-12
Mar-13
Jun-13
Sep-13
Dec-13
Mar-14
Jun-14
Sep-14
Dec-14
Mar-15
Jun-15
Sep-15
Dec-15
Mar-16
Jun-16
Sep-16
PayPal決済数
クレカのUX改善
累計取引: 8万件以上
決済方法別 利用割合
クレジットカード(他社)
PayPal
銀行振込全体の1/3
決済方法別 利用割合
クレジットカード(他社)
PayPal
銀行振込全体の1/3
2年弱のスピード上場を牽引
PayPal決済
導入経緯
導入経緯
決済はどんなサービスでも要になる
お金を預かって、お金を支払うビジネスモデル
サービスリリース時
・複数の決済方式を用意したい
・知名度の高い決済サービスでユーザーに安心感
導入経緯
決済サービスを利用するには審査が必要
物販でなく、役務の場合は決済の審査が厳しい
サービスリリース前なので実績がない
当初の思惑通りに決済の種類を増やす事に難航
導入経緯
そこで知名度高く、信頼感が大きいPayPal
Webから申し込むだけで、すぐに利用開始
サービスリリースに合わせて導入できた
PayPal利用シーン
お金を預かる
お金を預かる 報酬を送金
報酬の送金
表立った機能ではないが、一部対応している
PayPalアカウントの画面から手動で振込依頼
CSVで振込依頼も可
CrowdWorksにおけるPayPal
(技術的側面)
CrowdWorksのインフラ
Ruby 2.3系
Rails 4.2系
MySQL 5.6系
PayPal決済
Express Checkout
SOAP API
ライブラリ: Active Merchant
RubyでのPayPal決済ライブラリ
gem 公式 初回リリース(GitHub) 最新バージョン 状態
paypal-sdk-rest ◯ 2013/03/08 v1.6.0 開発継続中
paypal-sdk-merchant ◯ 2012/12/11 v1.117.2
2015/08/26 から
リリースがない
paypal-express ☓ 2011/02/08 v0.8.1
2014/12/22 から
リリースがない
activemerchant ☓ 2008/11/26 v1.62.0 開発継続中
Active Merchantを選択
世界中100以上の決済ゲートウェイに対応している
Rubyのgem
元々はECプラットフォームを運営しているShopify
が開発していたが、現在はOSSコミュニティによっ
て開発されている
http://activemerchant.org/
Active Merchantを選択してみて
Rubyのバージョン 1.9系 => 2.3系
Railsのバージョン 3.2系 => 4.2系
=> Active Merchantは特別な移行作業を行わなく
ともスムーズに移行できた
今だったら、、
REST APIを使いたい (paypal-sdk-rest)
※ SOAP APIは公式ドキュメントでClassicと書いてある
Express Checkoutの新機能In-contextを使いたい
※ PayPal側のサイトにユーザーを遷移させることなく、自サイト内で決済が完結する
でもExpress CheckoutはSOAP APIしか対応して
いない(?)
運用事例
Instant Payment Notification
(IPN)
Instant Payment Notification (IPN)
決済に関するイベントを通知するサービス
通常の決済はIPNを使わずExpress Checkoutだけ
で完了するので、あまり活用していなかった
リソース不足、決済へのクレームがない状態のた
め対応が後回しになる
Instant Payment Notification (IPN)
PayPal決済は他社のクレジットカード決済と比べ
てカジュアルに決済の差戻し申請が来ていた
サービスが成長するにつれて通常のフローから逸れ
た取引が発生する
IPNを使ったハンドリングを適切に行う必要が出る
Instant Payment Notification (IPN)
IPNのステータスが多く、発生頻度の低いイベント
への対応は限られたリソースの中だとかなり困難
IPNの通知は全て記録し、通知を感知できる状態に
して少しずつ改善していく体制にした
通知を感知できる状態
特殊なIPNの通知を受けたらSlackに即通知
サービス内のお金の状態は変化していく
仮払い => 報酬 => 出金
決済関連の通知がきた場合、対処が遅くなると難易
度が上がる
決済のテスト
Rubyは動的型付き言語、実際に動かしてプログラ
ムの整合性を検証する
・PayPalのsandboxを利用して手動確認
・CIで自動テスト
決済のテスト
PayPalのsandboxのAPIを自動テストに利用する
APIのMockが欲しいが、見つからない
※ 知ってたら教えて欲しい
自前で対応
決済のテスト
Mock用に主要なAPIのレスポンスをnetrecording
を使って記録
外部URLを偽装するテスト用ライブラリfakeweb
を使って疑似レスポンスを返す
決済のテスト
APIをMock
APIをMock (rspec)
APIをMock (他の方法)
vcr + webmock
初回のHTTP通信を記録し、2回目以降は記録した
データからmockとしてデータを返す
その他の小ネタ
(運用していて思う事を書いてみる)
ドキュメントが見つけづらい
Express Checkout以外にも多種の決済サービスが
あり、全7種でAPI連携できるものが4つ
※ https://www.paypal.com/jp/webapps/mpp/compare-business-products
ニッチな状況が起きた時には必ず参照するも、なか
なか求める情報にはたどり着けない事が多い
ネット上に事例があまり存在しないので、状況のア
ウトラインを把握しづらい
問題の切り分けが難しくて、何をしたら解決するの
か分からないような問題が起きた
技術サポートのクオリテイが高く、解決できた
取引額が一定を超えた場合、アカウントマネー
ジャーがトラブルや質問に対して対応してくれる
PayPalのサポートはクオリティが高い
PayPal導入事例
CrowdWorks編

More Related Content

Viewers also liked

#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech   Cloud searchでレコチョク検索の実現に向けて#reco_tech   Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けてrecotech
 
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニアrecotech
 
Tdtechtalk20160425myui
Tdtechtalk20160425myuiTdtechtalk20160425myui
Tdtechtalk20160425myuiMakoto Yui
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことJiro Nishitoba
 
サイトパフォーマンスからUXを追求する
サイトパフォーマンスからUXを追求するサイトパフォーマンスからUXを追求する
サイトパフォーマンスからUXを追求するweddingpark
 
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方DMM_GAMES_PF
 
from_beginner_to_engineer
from_beginner_to_engineerfrom_beginner_to_engineer
from_beginner_to_engineerYuka Tokuyama
 
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech   AWSへ全面移行した今を話ます。#reco_tech   AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。recotech
 
モノタロウが トレジャーデータを使う理由と、 データを活かす企業文化
モノタロウがトレジャーデータを使う理由と、データを活かす企業文化モノタロウがトレジャーデータを使う理由と、データを活かす企業文化
モノタロウが トレジャーデータを使う理由と、 データを活かす企業文化株式会社MonotaRO Tech Team
 
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!Hideto Masuoka
 
Dots deep learning部_20161221
Dots deep learning部_20161221Dots deep learning部_20161221
Dots deep learning部_20161221陽平 山口
 

Viewers also liked (13)

#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech   Cloud searchでレコチョク検索の実現に向けて#reco_tech   Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けて
 
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
 
Tdtechtalk20160425myui
Tdtechtalk20160425myuiTdtechtalk20160425myui
Tdtechtalk20160425myui
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
CTOが語るUI/UX
CTOが語るUI/UXCTOが語るUI/UX
CTOが語るUI/UX
 
サイトパフォーマンスからUXを追求する
サイトパフォーマンスからUXを追求するサイトパフォーマンスからUXを追求する
サイトパフォーマンスからUXを追求する
 
深層学習生き地獄
深層学習生き地獄深層学習生き地獄
深層学習生き地獄
 
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
 
from_beginner_to_engineer
from_beginner_to_engineerfrom_beginner_to_engineer
from_beginner_to_engineer
 
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech   AWSへ全面移行した今を話ます。#reco_tech   AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。
 
モノタロウが トレジャーデータを使う理由と、 データを活かす企業文化
モノタロウがトレジャーデータを使う理由と、データを活かす企業文化モノタロウがトレジャーデータを使う理由と、データを活かす企業文化
モノタロウが トレジャーデータを使う理由と、 データを活かす企業文化
 
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!
 
Dots deep learning部_20161221
Dots deep learning部_20161221Dots deep learning部_20161221
Dots deep learning部_20161221
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (9)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

PayPal導入事例 CrowdWorks編