私は自分のウェブサイトにPaypalを実装しようとしています。
私はこのクラスを使用します: http://www.micahcarrick.com/php-Paypal-ipn-integration-class.html
現在、Paypalサンドボックスを使用してテストしています。
問題は次のとおりです。
Paypal IPNが「pending」の支払いステータスでコールバックする理由がわかりませんか?
誰かが私が間違っていることを知っていますか?
テストビジネスアカウントにログインしたら、次の場所に手動で移動します。
https://www.sandbox.Paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true
通常、「My Business Setup」を使用してそこに到達できますが、現在は(サンドボックスにあるにもかかわらず)ライブでPaypalにリダイレクトされます。
そのページに移動したら、「自分が保有していない通貨で送られてきた支払いをブロックする」を「いいえ、受け入れて、変換して...」に変更します。
また、Paypal SandboxフロントエンドとAPIの「テストメール」セクションを使用してビジネスアカウントを確認することを忘れないでください。
私の問題は、私のサンドボックス販売アカウントが英国のユーザー(および通貨としてのGBP)として作成されたことでした。デンマーククローネ(DKK)で注文を処理しようとすると、商人の観点では購入が「未請求」であることがわかります。 DKKで1つの注文が受け入れられ、DKKで新しい通貨を作成することを選択するとすぐに、IPNからすべての「payment_status = completed」メッセージが送信されました。
この問題に少し対処した後、PaypalがUIを変更し、
Paypal Merchantテクニカルサポートの正確な手順は次のとおりです。
マーチャントテクニカルサポートにお問い合わせいただきありがとうございます。
サンドボックスアカウントの支払い確認機能をオフにするには、次の手順に従ってください。
!!!あなたがこれを行っていることを確認してくださいPaypal SandBox Merchant Account!
&それはどのように見えるか:
次の手順で解決できます。
Developer Centralにログインします。
左側の[テストアカウント]タブをクリックします。 Sandboxでテストするために、これらのテストアカウントを作成しておく必要があります。
[Payment Review]列を見つけます。
使用しているサンドボックスアカウントを見つけて、[Payment Review]列の[有効]をクリックします。
これは「無効」に変更され、残高とクレジットカードからの支払いはすぐに完了します。
考えられる2つの理由:
1。売り手アカウントには支払いを受け入れるか拒否するかのオプションがあります
この場合、売り手としてログインして支払いを受け入れる必要があり、payment_status = Completedで別のIPNを取得します
手順:
2。支払いレビューが有効になっています
溶液:
これは「無効」に変更され、残高とクレジットカードからの支払いはすぐに完了します。
変更Allow payments sent to me in a currency I do not hold
からYes
inすべてのユーザーアカウントでサンドボックス内にありますが、まだ機能していませんでした。
また、Paypalフォームで、およびサンドボックスユーザーアカウント用に同じ通貨を作成しようとしました here 新しい通貨をプライマリにします。お金を新しい通貨に変換します。まだ成功していません。
それから、Wes Hanneyの答えの最後の文、「Paypal Sandboxフロントエンドを使用してビジネスアカウントを確認する」に気付きました。 これを試す も機能しませんでした。
M.G.パルマーは、ドイツの商人アカウントを作成するために彼の答えで提案しました。動作しませんでした。
なんて面倒!
PCを窓の外に放り出そうとしていた1時間後、私は1つのことを忘れていることに気付きました。 Paypalフォームの実際の受信者のメールアドレスをサンドボックス販売者のメールアドレスに変更します。それでようやく解決しました。
PS:たぶんバカ初心者の間違いでしょうか?しかし、同じ状況に陥った他の人には役立つかもしれません。
私は同じ問題を抱えていましたが、ここでの提案はどれもうまくいきませんでした。それから私は、問題がサンドボックスアカウントからライブアカウントに支払いをしようとしていたことであることに気付きました。たとえば、登録済みのビジネスアカウントが次の場合:[email protected]
その後、すべてのサンドボックス支払いは[email protected]
それ以外の場合、それらはPENDINGモードになります。
上記の解決策はありませんでしたが、解決策を見つけるのに役立ちました。
デフォルトのビジネスアカウントと購入者アカウントを使用している場合、このソリューションが機能する可能性があります。
developer.Paypal> sandbox.accountsに移動します
https://developer.Paypal.com/developer/accounts/
ログインをクリックし、sandobxでクローンアイコンをクリックしますビジネスアカウントおよびバイヤーアカウント
新しいnamesおよびemailsを設定し、create new accountをクリックします
両方のアカウントのプロファイルを開き、Payment Reviewが[〜#〜] off [〜#〜]であることを確認します
編集コード/アプリでターゲットアカウントを作成し、新しいビジネスアカウント
繰り返し新しい取引を使用するトランザクションバイヤーアカウント
この解決策は私の問題を解決しただけではありません。そのおかげで、sandox.Paypalデザインは新しいアカウントに変更され、これは実際のアカウントを使用します。
この場合、IPNが受信したデータの一部が異なる名前で応答する可能性があるため、これは重要です。
ここで同様の問題-私の(サンドボックス)マーチャントアカウントは米国と同じように作成され、ユーロで支払いをしようとしていました。
私にとっては、どの設定を変更しても問題ありませんでした。ドイツに拠点を置く新しい商人アカウントを作成して初めて機能しました。
デフォルトでは、Paypalビジネスアカウントは、地域の設定に基づいて選択されたいくつかの通貨に制限されています。承認されていない通貨で行われた支払いは、保留/未処理の状態のままになります。これらの通貨をサポート/受け入れるには、Paypalの「受け入れられる通貨」のリストに通貨を追加する必要があります。これを行うには、次の手順を実行します。
注:テスト時にサンドボックスアカウントを使用する場合、URLを使用してこのアカウントにログインした後、ファシリテーターサンドボックスアカウントに対してもこれを実行する必要があります。 https://www.sandbox.Paypal.com/
すべてのサンドボックスアカウントを削除して再作成することで解決しました。
重要な注意事項:
アカウントがコードで同じ通貨を使用していることを確認してください。
確認する必要があるもう1つのことがあります。
Paypalアカウントの言語エンコードがUTF-8に設定されていることを忘れないでください。状況によっては、これはデフォルトで「windows-1256」のようなものに設定されます。 UTF-8に変更するには、以下を行う必要があります。
ドイツで設定したすべてのPaypalアカウントは、デフォルトで言語エンコード「windows ...」に設定されていました。その場合、IPNは、WoocommerceまたはEDDまたはイベントエスプレッソであっても、UTF-8でエンコードされたWebサイトでは機能しません。
解決策は@Jadeyeが説明するものです。
Paypal開発者Webサイトにアクセス