2

Paypal .net sdk を動的構成で使用しようとしています (Web 構成からではありません)。実際に構成を表す Dictionary オブジェクトで開始できる PayPalAPIInterfaceServiceService クラスのオーバーロードが見つかりました。github のトピックhttps://github.com/paypal/sdk-core-dotnet/issues/1。私のコード:

Dictionary<string, string> paypalConfig = new Dictionary<string, string>();
paypalConfig.Add("mode", "sandbox");
paypalConfig.Add("connectionTimeout", "30000");
paypalConfig.Add("requestRetries", "5");
paypalConfig.Add("IPAddress", "127.0.0.1");
paypalConfig.Add("apiUsername", "***.gmail.com");
paypalConfig.Add("apiPassword", "api password goes here");
paypalConfig.Add("apiSignature", "signature goes here");
paypalConfig.Add("applicationId", "sandbox app id");
paypalConfig.Add("signatureSubject", "");
paypalConfig.Add("certificateSubject", "");


PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(paypalConfig);

DoDirectPaymentResponseType response = service.DoDirectPayment(wrapper);

DoDirectPayment(wrapper) メソッドを呼び出すと、「Missing credentials for」というメッセージとともに MissingCredentialException が発生します。そして今、質問: カスタム構成を適切に初期化する方法は? どのキーを使用すればよいですか? この質問に関する情報は見つかりませんでした。

4

4 に答える 4

6

PayPal の文書は時々私を怒らせます。彼らは「サンプルをチェックしてください」と言いますが、このコンストラクターを参照するサンプルは 1 つもありません!

幸いなことに、彼らはこのページでそれを説明しました。

...または、辞書を動的に渡すことによって (データベースから、または必要に応じて読み込むことができます)。

Dictionary<string, string> config = new Dictionary<string, string>();
config.Add("mode", "sandbox");
config.Add("account1.apiUsername", "jb-us-seller_api1.paypal.com");
config.Add("account1.apiPassword", "...");
config.Add("account1.apiSignature", "...");

PayPalAPIInterfaceService s = new  PayPalAPIInterfaceService(config);
于 2013-07-24T23:35:35.350 に答える
1

それは面白いですが、この質問を投稿した直後に解決策を見つけました:)だから、カスタム構成を開始する適切な方法:

Dictionary<string, string> paypalConfig = new Dictionary<string, string>();
paypalConfig.Add("mode", "sandbox");
paypalConfig.Add("connectionTimeout", "30000");
paypalConfig.Add("requestRetries", "5");
paypalConfig.Add("IPAddress", "127.0.0.1");
paypalConfig.Add("account1.apiUsername", "***.gmail.com");
paypalConfig.Add("account1.apiPassword", "*******");
paypalConfig.Add("account1.apiSignature", "api signature here");
paypalConfig.Add("account1.applicationId", "app id here");
paypalConfig.Add("account1.signatureSubject", "");
paypalConfig.Add("account1.certificateSubject", "");

したがって、構成プロパティの前に「account1」プレフィックスを追加する必要がありました。

于 2013-06-05T10:43:51.077 に答える
0

次の領域で、アカウントに credentials.change を指定する必要があります。

aypalConfig.Add("apiUsername", "***.gmail.com");
paypalConfig.Add("apiPassword", "api password goes here");
paypalConfig.Add("apiSignature", "signature goes here");
paypalConfig.Add("applicationId", "sandbox app id");

開発者のアカウントに移動します。ここで、必要な情報を取得します。

于 2013-06-05T10:42:50.137 に答える