2

PayPal Payment Advanced を使用しているサイトで作業しています。ドキュメントを読み、初期トークンを取得するためのいくつかの方法を試しました。以下は私のコードです:

Dim コレクション As New NameValueCollection()

    collection.Add("PARTNER", "PayPal")
    collection.Add("VENDOR", "*Vendor ID*")
    collection.Add("USER", "*Transaction ID*")
    collection.Add("PASSWORD", "*The USER Password*")
    collection.Add("TRXTYPE", "S")
    collection.Add("AMT", "0.01")
    collection.Add("CREATESECURETOKEN", "Y")
    collection.Add("SECURETOKENID", Guid.NewGuid().ToString().Replace("-", ""))


    Dim wc As New WebClient()
    Dim response As Byte() = wc.UploadValues("https://pilot-payflowpro.paypal.com", "POST", collection)

    Dim text As String = ASCIIEncoding.ASCII.GetString(response)

結果は常に次のようになります..... RESULT=1&SECURETOKENID=11d95bb67d924cb2b8d9b4df81dfd586&RESPMSG=ユーザー認証に失敗しました

私はこの基本的なプロセスを、投稿を含むシンプルな html フォームと、キーと値のペアを持つ非表示のフォーム フィールドを使用して試しましたが、結果は常に同じです。

問題なく PayPal Manger の両方のアカウントにアクセスできます。

誰からの助けも大歓迎です。

4

3 に答える 3

1

なお、Paypal ナレッジベース サイトから、

注: PayPal Manager では特殊文字をパスワードに含めることができますが、DOS や UNIX などの一部のオペレーティング シェルでは特殊文字の扱いが異なるため、特殊文字の使用は避けてください。たとえば、パーセント記号 (%) は DOS 内の特殊文字です。「PaSS%word1」などのパスワードは「PaSS」に切り捨てられます。これは、DOS が 2 番目の「S」の後のすべての文字を削除するためです。

英数字以外の文字を含むパスワードがあり、認証は OP と同じように失敗します。

https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1223&actp=LIST

于 2016-12-23T19:51:41.007 に答える
1

私は問題を見つけました。他の誰かが私と同じ頭痛を経験する必要がないことを願って、ここに投稿しています。

PayPal アドバンスド ペイメントのテスト データを送信しようとするときは、サンドボックス アカウントの電子メールが関連付けられ、PayPal マネージャーに関連付けられていることを確認する必要があります。実際のメールは既に別のアカウントに関連付けられていたため、架空のメールを作成しました。したがって、developer.paypal.com にアクセスして、[サンドボックス アカウント] --> [アカウントの作成] を選択してください。

アカウントを作成したら、サンドボックス テスト アカウントで新しいエントリを選択し、[プロファイル] タブで [プロファイル] を選択して、PayPal Payments Pro が選択されていることを確認します。

それでは、PayPalマネージャーに移りましょう。ここから、PayPal サンドボックスのメール アドレスが関連付けられていることを確認します。開発者サンドボックスに追加された新しいアカウントで、電子メール アドレスを入力し、[更新] を選択します。

トランザクション設定で、「トランザクションごとの最大金額」に値があることを確認します

最後に、名前の値のパラメーターが正しく設定されていることを確認します。私の場合、パラメーター PASSWORD で失敗していました。PWDだったはずです。

したがって、フォームは次の例のように設定する必要があります。

<form method="POST" action="https://pilot-payflowpro.paypal.com:443" target="paypal">

            <input type="hidden" value="PARTNER" name="PayPal" />
            <input type="hidden" value="VENDOR" name="*Vendor Name*" />
            <input type="hidden" value="USER" name="*User Name*" />
            <input type="hidden" value="PWD" name=""User Password"" />
            <!-- NOT PASSWORD -->

            <input type="hidden" value="CREATESECURETOKEN" name="Y" />
            <input type="hidden" value="TRXTYPE" name="S" />
            <input type="hidden" value="AMT" name="1.01" />
            <input type="hidden" value="SECURETOKENID" name="random guid here" />

            <input type="submit" value="Submit">

        </form>

または

    Dim collection As New NameValueCollection()
    collection.Add("Partner", "Partner Name - Usually PayPal or Verisign")
    collection.Add("Vendor", "Vendor Name")
    collection.Add("User", "User Name")
    collection.Add("PWD", "User's Password")
    collection.Add("TRXTYPE", "Transaction type, example A, S, etc")
    collection.Add("AMT", "Amount")
    collection.Add("CREATESECURETOKEN", "Y")
    collection.Add("SECURETOKENID",  Guid.NewGuid().ToString().Replace("-", ""))

    Dim wc As New WebClient()
    Dim response As Byte() = wc.UploadValues(txtWebAddress.Text, "POST", collection)
    wc.Dispose()
    Dim responsetext As String = System.Text.ASCIIEncoding.ASCII.GetString(response)

この問題の解決に協力してくれた PayPal サポートに感謝します。彼らは最も役に立ちました。

于 2013-07-02T23:43:12.473 に答える
0

API資格情報を使用していますか? またはユーザー資格情報?以下をご覧ください: https://developer.paypal.com/webapps/developer/docs/classic/express-checkout/integration-guide/ECAPICredentials/

于 2013-06-29T03:27:13.207 に答える