Más contenido relacionado
Similar a Amon2 で造られた api サーバを引き継いで課金の実装をしました話 (20)
Amon2 で造られた api サーバを引き継いで課金の実装をしました話
- 2. who am I
• t.amano / @sheercat
• 職業:
Servent CTO
• 言語:
perl go C C++ java clojure
• 会社:
livedoor → LINE →
Diverse inc. (mixi子会社)
- 24. API サーバ側で in app purchase の
レシート validate 処理をします
(クライアントサイドでもできま
すが、なんか面倒そう)
- 25. in app purchase レシートをサーバ
で validate する場合は
buy.itunes.apple.com/verifyReceipt に
レシート投げつけてレスポンスで
正否を見ます
- 27. 具体的には itune connect に登録した tier
をサーバ側でももっておいて、レシート中
にある product_id と比較して一致しない
ものはクラックであると判断します。
(レシート偽装はクラックの常套手段です
)
- 40. my $rsa = Crypt::OpenSSL::RSA->new_public_key($pub);
unless ( $rsa->verify( $receipt, $signature ) ) {
die "rsa verify error";
}
こんな感じで。
- 43. iOS も Android もテスターユーザーを登録
できるのでそのユーザーで課金すると、実
際には支払うこと無く課金テストができま
す。
- 44. Android は tester で課金すると orderId が
レシートに入らないようになってしまいま
したので注意が必要です。
(6/7 くらいから)
- 54. • 課金系はクラック対策必須
product id 確認 transition id ユニークキー化
サーバ不具合に備え、アプリにレシート再送処理
課金実装時には、別デバイスで課金される想定を
test 課金時のレシートは本番と違うことがある
課金実装よりも計上レポート実装のほうが重い
法 律 重 要
※法律、計上は課金実装前に詰めとかないと詰む