2012年12月28日金曜日

paypal sandboxではまったはなし

どこを見ても共通しているんだけど、
やっぱり同じような箇所ではまるのねってことで、そのときの対処法。

まずは土台をつくるための参考サイト
ほとんどのコードはここだけで十分。
Rails3 + Mongoid + ActiveMerchant で Paypal Express Checkout

RailsCasts146


[その0]development.rb内のログイン

ここのログイン(:login => ""の部分)の文字列はテストアカウントのAPI CredentialsのビジネスアカウントのAPIユーザーネーム(@gmail.comとかじゃない方)の方を適用する。テストアカウント名を使うわけではないので注意。



[その1]This transaction is invalid. Please return to the recipient's website to complete your transaction using their regular checkout flow.

ひたすらこのエラーw
Orderを新規で飛ばすときにでてくる。
原因はcacheかcookieらしい。なんどもクリアしたが、すぐには起動できなかった。
どこも変えてないのにどのタイミングかですっと通る。
謎。謎を謎のままにしたくない主義だがこれだけは迷宮入り。


[その2]アカウントの作成

いろんなサイトを見ていると、今は日本のアカウントでも問題ないらしいが、とりあえず問題は極力減らしたいので、sandboxでは英語のアカウントで準備する。中につくるテストアカウントも英語圏にしておけばとりあえず間違いない

テストアカウントではUSの場合、buyerが2つあるがどちらでも問題なかった。
Sellerのアカウントを1つ、Buyerのアカウントを1つ準備する。
どちらも記載されているpasswordはメモして控えておくこと。テストアカウントにログインするときに必要になる。
ここでメモらないと、他の場所にこのパスワードが出てこない(APIパスワードは別)ため、アカウントのリセット→Bad requestのコンボがありえる(クッキーを削除すればそんなにはまらずにいけたが)


[その3]テストアカウントにログイン

テストアカウントの左についてるラジオボタンを押してるやつのテストサイトを見ることができる。
さっき作成したテストアカウントのパスワードが必要になるんで、入力。ここではAPIパスワードとかもろもろ関係ないので要注意。


[その4]PaymentReviewはDisableに

一見Enableにした方が問題を解決したかのように見えますが、これはデフォルトのDisableが正解。 どうやらアカウントが正式なものかをチェックして確認待ちみたいになるらしい。だから時間がかかってうまく決済されたのかをsandboxで確認できない。


[その5]paypalのエラーは見えないが、development.logでなんとなく確認できる

log/development.rbは少しだけエラーログが履かれているかもしれない。正直これを見て、あーこのへんでつまってるのかなーとか考えて、接続しなおしたらその1が解決してた。なんかのいとぐちになるかも?




とまあ、エラーの嵐だったんですが、ここからpaypal adaptiveに移ります。