この記事では主に、Alipay APP 決済の非同期コールバック検証失敗事例の分析を共有します。最近、IOS と協力して APP 決済を行いましたが、公式ドキュメントによると、支払いプロセスは非常にスムーズに完了しました。図に示すように、一度に実行できます。
IOS が文字列をリクエストした後、SDK を直接呼び出して支払いリクエストを開始します。
しかし、非同期コールバック署名検証の処理中に問題が発生しました。-_-||、公式の方法によれば、図に示すように、署名検証は失敗し続けました:
$flag は false を返し続けました。その後、Alipay テクニカル サポート センターを見つけました (このサービスは非常に優れています)。同じ支払いコールバックで、カスタマー サービス側が署名を正常に検証できました。 。 。 、図に示すように、カスタマー サービスのコールバック データとローカル コールバック データを比較した後:
PHP が、fund_bill_list の特殊文字の前にエスケープ文字を自動的に追加していることがわかりました (リクエスト時に php.ini の magic_quotes_gpc がオンになっており、「 」は自動的にエスケープされます)... エスケープ文字を削除した後、署名の検証は成功しました。
最近、私は IOS と連携して APP 決済を行っていますが、公式ドキュメント
によると、写真に示すように、支払いプロセスは 1 回で完了しました。
IOS は を直接呼び出します。 SDK は文字列
をリクエストした後に支払いリクエストを開始しますが、まだ処理中です。非同期コールバック署名検証中に問題が発生しました。公式の方法によれば、次のように署名検証が失敗し続けました。写真内:
$flag は false を返し続けました。その後、Alipay テクニカル サポート センターを見つけました (このサービスは非常に優れています)。同じ支払いコールバックで、カスタマー サービス側が署名を正常に検証できました。 。 。 、図に示すように、カスタマー サービスのコールバック データとローカル コールバック データを比較した後:
PHP が、fund_bill_list の特殊文字の前にエスケープ文字を自動的に追加していることがわかりました (リクエスト時に php.ini の magic_quotes_gpc がオンになっており、「 」は自動的にエスケープされます)... エスケープ文字を削除した後、署名の検証は成功しました。
関連する推奨事項:
koa の非同期コールバック処理の詳細な分析
JavaScript 非同期コールバックの Promise モード カプセル化の例_javascript スキル
以上がAlipay APP決済非同期コールバック署名検証失敗事例分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。