5

この質問は中国以外の開発者よりも中国の開発者に関連しているため、この質問がどれほど人気が​​あるか、または回答が得られるかどうかは完全にはわかりませんが、現在、モバイルを受信するための Alipay のサーバー側スクリプトの統合に取り組んでいます。成功リクエスト文字列。

私は携帯電話のユーザーに (恐ろしい Alipay API で目を細めることで) アリペイへの支払いに必要な文字列を提供することに成功しました。次の形式に従います [識別可能な情報は差し控えます]:

_input_charset=\"utf-8\"&body=\"Order Number: 20141121_80\"&it_b_pay=\"30m\"&notify_url=\"http://somePublicFacingIP:8080/index.php?route=payment/alipay/callback\"&out_trade_no=\"80\"&partner=\"2088611100000000\"&payment_type=\"1\"&seller_id=\"account@website.com\"&service=\"mobile.securitypay.pay\"&subject=\"Order Number: 20141121_80\"&total_fee=\"10.01\"

上記の文字列は、Alipay 支払いクラスの Android/iOS API によって消費され、秘密鍵で署名されてから、Alipay に送信されます。Alipay が要求を受け取ると、パラメーター文字列を確認し、6000 ~ 9000 の範囲のステータス コードを返します。

これまでresultStatus=9000のところ、支払いが成功したことを示す文字列が携帯電話の担当者に返されます (Alipay のウォレット履歴を確認することで、実際に支払いが行われたことがわかります)。

result = {
    memo = "";
    result = "_input_charset=\"utf-8\"&body=\"\U4ea4\U6613\U53f7 20141124_80\"&it_b_pay=\"30m\"&notify_url=\"http://publicFacingIP:8080/index.php?route=payment/alipay/callback\"&out_trade_no=\"80\"&partner=\"208861100000000\"&payment_type=\"1\"&seller_id=\"account@website.com\"&service=\"mobile.securitypay.pay\"&subject=\"\U65b0\U5143\U7d20\U7f51\U4e0a\U70b9\U9910 - \U8ba2\U5355\U7f16\U53f7 20141124_87\"&total_fee=\"0.01\"&success=\"true\"&sign_type=\"RSA\"&sign=\"reallyLongSignedString\"";
    resultStatus = 9000;
}

すべてが機能しなくなる場所は次のとおりです。

理論的には、Alipay は結果の文字列 (上記よりも多くのパラメーターを含む)notify_urlを、サーバーが検証する必要がある入力パラメーターで指定した、Alipay にも送信する必要があります。この結果文字列はバックエンドの更新にも使用されるため、注文が実際に成功したことがわかります。

何らかの理由で、Alipay は結果の文字列を指定された に送信していませんnotify_url

私が試したこと:

  1. var_dump()POST 入力のa を に置きpayment/alipay/callbackます。リクエストは受け付けいません。

  2. 公開 IP URL への cURL を試みましたが、リクエストを受信して​​いるため機能していることがわかります。そのため、 URL が機能payment/alipay/callbackしているかどうかが除外されます。callback

  3. 髪を引っ張ります。支払いを再度テストしましたが、髪を引っ張っても問題が解決しなかったことが確認できました。

中国の開発者がよく言うように、私にアドバイスや解決策を提供してくれる「大神」(または教祖) はいますか?

4

1 に答える 1

2

よし、Alipay のサポート コールを終了しました。

彼らがリクエストを my に送信したことを確認しましたnotify_urlが、通知クラスには PHP リダイレクト コード スニペットが含まれていたため、ランディング ページにリダイレクトされただけでした (結果の出力はメイン ページの HTML コードでした)。

したがって、教訓は次のとおりです。

  1. リダイレクトを入れないでくださいnotify_url

  2. Alipay のサポートに連絡してください - 彼らはあなたが思っているよりも多くのことを助けてくれます (わかりました。私が思っているほどではありませんが、それでも役に立ちました)。

また、Notify クラス (戻りパラメータの処理を担当) の厄介なスパゲッティ コードも実装しました。コードはきれいではなく、インデントはすべて正しくなく、コメントはすべて中国語です..しかし、うまくいくようです. そのため、最初に出荷してからリファクタリング && 翻訳を行います。

于 2014-11-25T04:43:09.473 に答える