課金に対する考え方としては、通常のプログラミング処理とは違い、かなりシビアな世界になってきます。
最近は課金部分を肩代わりしてくれるサービスも出てきており実装も楽になっていますが、
個人で実装する場合、課金が上手く行かなかったりすると、最悪、訴訟にも発展しかねなかったり、
そのセキュリティホールを突かれて不正利用されたりします。
よく規約やガイドラインを読んで、慎重に実装することをお薦めします。
また約款や利用規約などの法務的書類の書き方や、それに対する法律の勉強もしておくべきでしょう。
でないと、いざという時の保険として自分を守りきることができません。
課金処理に関しては、お金が動くところは特に完全に正常であるという認識ができて初めて一連の課金処理を完了させます。
つまり多くの場合、プログラミング処理途中でロストしたり、リクエストが失敗した場合は、全て不正とみなします。
ただし、再度リクエストしてもらうなどの何らかのフォロー策も必要になることを忘れないでください。
(プログラムではなくユーザサポートとしてのやりとり)
iOSの課金に関して少し資料が古いかもしれませんが、こちら参考になるかと思います。
iOS課金まとめ
iOSの月額課金レシート検証
あとiOSとAndroidでは課金方法も変わってきますので注意してください。
【追記】
以下に処理マトリクスを記載します。
リクエスト | 認証結果 | レスポンス | 結果 | アプリ処理 |
---|
通信失敗 | - | - | 購入失敗 | 失敗しました。再実行してくださいとダイアログを出す |
通信成功 | 購入可能と判断された | 通信完了 | 購入完了 | 正常終了のダイアログを出して有料処理に移る |
通信成功 | 購入可能と判断された | 通信失敗 | AppStore側で購入できない | 失敗しました。再実行してくださいとダイアログを出す |
通信成功 | 購入不可と判断された | 通信完了 | AppStore側で購入できない | 失敗しました。再実行してくださいとダイアログを出す |
通信成功 | 購入不可と判断された | 通信失敗 | AppStore側で購入できない | 失敗しました。再実行してくださいとダイアログを出す |
※認証結果:ログイン成功、プリペイド金額があるかの判断結果とする
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/04 14:50
2017/04/05 02:15 編集