paypal導入事例 crowdworks編

52
PayPal 導導導導 CrowdWorks 導

Upload: toru-iwashita

Post on 16-Apr-2017

340 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: PayPal導入事例 CrowdWorks編

PayPal 導入事例 CrowdWorks 編

Page 2: PayPal導入事例 CrowdWorks編

自己紹介Github: ToruIwashita

所属 : 株式会社クラウドワークス趣味 : dotfiles いじりOSS: git-switcher.vim

Page 3: PayPal導入事例 CrowdWorks編

CrowdWorksというサービス

Page 4: PayPal導入事例 CrowdWorks編

サービス概要

Page 5: PayPal導入事例 CrowdWorks編
Page 6: PayPal導入事例 CrowdWorks編

2013/03/22 〜日本最大級のクラウドソーシングサービスユーザー数 113 万人以上マザーズ上場 : 2014/12/12

CrowdWorks

Page 7: PayPal導入事例 CrowdWorks編

ネット上で仕事を依頼し、納品してもらう

Page 8: PayPal導入事例 CrowdWorks編

ネット上で仕事を依頼し、納品してもらう

Page 9: PayPal導入事例 CrowdWorks編

ネット上で仕事を依頼し、納品してもらう

Page 10: PayPal導入事例 CrowdWorks編

ネット上で仕事を依頼し、納品してもらう

Page 11: PayPal導入事例 CrowdWorks編

お金を預かる部分がサービスの肝お金を預かるために決済を行う仕事発注にオプションがあり、これも決済対象預かったお金が報酬となり、ユーザーへ送金

CrowdWorks の決済について

Page 12: PayPal導入事例 CrowdWorks編

銀行振込クレジットカード決済PayPal 決済

決済の種類 ( サービスリリース時〜 )

Page 13: PayPal導入事例 CrowdWorks編

PayPal 決済の規模

Page 14: PayPal導入事例 CrowdWorks編

Mar-12Jun

-12Se

p-12Dec-

12Mar-

13Jun

-13Se

p-13Dec-

13Mar-

14Jun

-14Se

p-14Dec-

14Mar-

15Jun

-15Se

p-15Dec-

15Mar-

16Jun

-16Se

p-16

PayPal決済数

Page 15: PayPal導入事例 CrowdWorks編

Mar-12Jun

-12Se

p-12Dec-

12Mar-

13Jun

-13Se

p-13Dec-

13Mar-

14Jun

-14Se

p-14Dec-

14Mar-

15Jun

-15Se

p-15Dec-

15Mar-

16Jun

-16Se

p-16

PayPal決済数

Page 16: PayPal導入事例 CrowdWorks編

Mar-12Jun

-12Se

p-12Dec-

12Mar-

13Jun

-13Se

p-13Dec-

13Mar-

14Jun

-14Se

p-14Dec-

14Mar-

15Jun

-15Se

p-15Dec-

15Mar-

16Jun

-16Se

p-16

PayPal決済数 クレカの UX 改善

Page 17: PayPal導入事例 CrowdWorks編

Mar-12Jun

-12Se

p-12Dec-

12Mar-

13Jun

-13Se

p-13Dec-

13Mar-

14Jun

-14Se

p-14Dec-

14Mar-

15Jun

-15Se

p-15Dec-

15Mar-

16Jun

-16Se

p-16

PayPal決済数 クレカの UX 改善

累計取引 : 8 万件以上

Page 18: PayPal導入事例 CrowdWorks編

決済方法別 利用割合

クレジットカード (他社 )PayPal銀行振込全体の 1/3

Page 19: PayPal導入事例 CrowdWorks編

決済方法別 利用割合

クレジットカード (他社 )PayPal銀行振込全体の 1/3

2 年弱のスピード上場を牽引

Page 20: PayPal導入事例 CrowdWorks編

PayPal 決済導入経緯

Page 21: PayPal導入事例 CrowdWorks編

導入経緯決済はどんなサービスでも要になるお金を預かって、お金を支払うビジネスモデルサービスリリース時・複数の決済方式を用意したい・知名度の高い決済サービスでユーザーに安心感

Page 22: PayPal導入事例 CrowdWorks編

導入経緯決済サービスを利用するには審査が必要物販でなく、役務の場合は決済の審査が厳しいサービスリリース前なので実績がない当初の思惑通りに決済の種類を増やす事に難航

Page 23: PayPal導入事例 CrowdWorks編

導入経緯そこで知名度高く、信頼感が大きい PayPal

Web から申し込むだけで、すぐに利用開始サービスリリースに合わせて導入できた

Page 24: PayPal導入事例 CrowdWorks編

PayPal 利用シーン

Page 25: PayPal導入事例 CrowdWorks編
Page 26: PayPal導入事例 CrowdWorks編

お金を預かる

Page 27: PayPal導入事例 CrowdWorks編

お金を預かる 報酬を送金

Page 28: PayPal導入事例 CrowdWorks編

お金を預かる 報酬を送金

報酬の送金表立った機能ではないが、一部対応しているPayPal アカウントの画面から手動で振込依頼CSV で振込依頼も可

Page 29: PayPal導入事例 CrowdWorks編

CrowdWorks におけるPayPal

( 技術的側面 )

Page 30: PayPal導入事例 CrowdWorks編

CrowdWorks のインフラRuby 2.3 系Rails 4.2 系MySQL 5.6 系

Page 31: PayPal導入事例 CrowdWorks編

PayPal 決済Express Checkout

SOAP API

ライブラリ : Active Merchant

Page 32: PayPal導入事例 CrowdWorks編

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 開発継続中

Page 33: PayPal導入事例 CrowdWorks編

Active Merchant を選択世界中 100 以上の決済ゲートウェイに対応している Ruby の gem

元々は EC プラットフォームを運営しているShopify が開発していたが、現在は OSS コミュニティによって開発されているhttp://activemerchant.org/

Page 34: PayPal導入事例 CrowdWorks編

Active Merchant を選択してみてRuby のバージョン 1.9 系 => 2.3 系Rails のバージョン 3.2 系 => 4.2 系=> Active Merchant は特別な移行作業を行わなくともスムーズに移行できた

Page 35: PayPal導入事例 CrowdWorks編

今だったら、、REST API を使いたい (paypal-sdk-rest)※ SOAP API は公式ドキュメントで Classic と書いてあるExpress Checkout の新機能 In-context を使いたい※ PayPal 側のサイトにユーザーを遷移させることなく、自サイト内で決済が完結するでも Express Checkout は SOAP API しか対応していない (?)

Page 36: PayPal導入事例 CrowdWorks編

運用事例

Page 37: PayPal導入事例 CrowdWorks編

Instant Payment Notification(IPN)

Page 38: PayPal導入事例 CrowdWorks編

Instant Payment Notification (IPN)決済に関するイベントを通知するサービス通常の決済は IPN を使わず Express Checkout だけで完了するので、あまり活用していなかったリソース不足、決済へのクレームがない状態のため対応が後回しになる

Page 39: PayPal導入事例 CrowdWorks編

Instant Payment Notification (IPN)PayPal 決済は他社のクレジットカード決済と比べてカジュアルに決済の差戻し申請が来ていたサービスが成長するにつれて通常のフローから逸れた取引が発生するIPN を使ったハンドリングを適切に行う必要が出る

Page 40: PayPal導入事例 CrowdWorks編

Instant Payment Notification (IPN)IPN のステータスが多く、発生頻度の低いイベントへの対応は限られたリソースの中だとかなり困難IPN の通知は全て記録し、通知を感知できる状態にして少しずつ改善していく体制にした

Page 41: PayPal導入事例 CrowdWorks編

通知を感知できる状態特殊な IPN の通知を受けたら Slack に即通知サービス内のお金の状態は変化していく 仮払い => 報酬 => 出金決済関連の通知がきた場合、対処が遅くなると難易度が上がる

Page 42: PayPal導入事例 CrowdWorks編

決済のテスト

Page 43: PayPal導入事例 CrowdWorks編

Ruby は動的型付き言語、実際に動かしてプログラムの整合性を検証する・ PayPal の sandbox を利用して手動確認・ CI で自動テスト

決済のテスト

Page 44: PayPal導入事例 CrowdWorks編

PayPal の sandbox の API を自動テストに利用するAPI の Mock が欲しいが、見つからない※ 知ってたら教えて欲しい自前で対応

決済のテスト

Page 45: PayPal導入事例 CrowdWorks編

Mock 用に主要な API のレスポンスをnetrecording を使って記録外部 URL を偽装するテスト用ライブラリfakeweb を使って疑似レスポンスを返す

決済のテスト

Page 46: PayPal導入事例 CrowdWorks編

API を Mock

Page 47: PayPal導入事例 CrowdWorks編

API を Mock (rspec)

Page 48: PayPal導入事例 CrowdWorks編

API を Mock (他の方法 )vcr + webmock

初回の HTTP 通信を記録し、 2 回目以降は記録したデータから mock としてデータを返す

Page 49: PayPal導入事例 CrowdWorks編

その他の小ネタ( 運用していて思う事を書いてみる )

Page 50: PayPal導入事例 CrowdWorks編

ドキュメントが見つけづらいExpress Checkout 以外にも多種の決済サービスがあり、全 7 種で API連携できるものが 4 つ※ https://www.paypal.com/jp/webapps/mpp/compare-business-products

ニッチな状況が起きた時には必ず参照するも、なかなか求める情報にはたどり着けない事が多いネット上に事例があまり存在しないので、状況のアウトラインを把握しづらい

Page 51: PayPal導入事例 CrowdWorks編

問題の切り分けが難しくて、何をしたら解決するのか分からないような問題が起きた技術サポートのクオリテイが高く、解決できた取引額が一定を超えた場合、アカウントマネージャーがトラブルや質問に対して対応してくれる

PayPal のサポートはクオリティが高い

Page 52: PayPal導入事例 CrowdWorks編

PayPal 導入事例 CrowdWorks 編