我正在Battle Hack London进行攻击,我遇到了一个烦人的问题。用于c#的PayPal SDK似乎不能正常工作。
我正在尝试进行我的第一笔交易,这是我的代码(我把它放在一起修复损坏的online docs:
var tokenCredential = new OAuthTokenCredential(something, someother);
var accessToken = tokenCredential.GetAccessToken();
Payment createdPayment = new Payment
{
intent = "sale",
transactions = new List<Transaction>
{
new Transaction
{
amount = new Amount
{
total = value.ToString("R"),
currency = "GBP"
},
description = forWhat
}
}
}.Create(accessToken);
这导致
无法解析* .Config文件。确保您已正确配置'paypal'部分。
我追溯到this line of code,但我不知道如何正确配置该部分,我找不到正确的文档。
如何配置csharp REST SDK?
答案 0 :(得分:8)
我遇到了同样的错误。我尝试了Skliwz的解决方案,但它对我不起作用。
相反,我可以通过调用传递字典对象来获得结果。
Dictionary<string, string> payPalConfig = new Dictionary<string, string>();
payPalConfig.Add("mode", "sandbox");
OAuthTokenCredential tokenCredential = new AuthTokenCredential("myCliedId", "myClientSecret", payPalConfig);
string accessToken = tokenCredential.GetAccessToken();
仍在努力让我的登录工作......
答案 1 :(得分:5)
我在PayPal开发人员的支持下完成了这项工作。需要补充一点:
<configSections>
<section name="paypal" type="PayPal.Manager.SDKConfigHandler, PayPalCoreSDK"/>
</configSections>
<paypal>
<accounts>
<account apiUsername="xxx"
apiPassword="yyy"
applicationId="APP-80W284485P519543T"
apiSignature="zzz"
/>
</accounts>
<settings>
<add name="mode" value="sandbox"/>
</settings>
</paypal>
其中xxx
,yyy
,zzz
您是从主sandbox test account的“帐户详细信息”中获得的值。
答案 2 :(得分:2)
如果您使用的是PayPal .Net SDK(我的版本是1.3.0),您只需要以下内容:
<configSections>
<section name="paypal" type="PayPal.SDKConfigHandler, PayPal" />
</configSections>
<paypal>
<settings>
<add name="mode" value="sandbox" />
</settings>
</paypal>
答案 3 :(得分:1)
如果您像我一样,并且不想将客户端信息存储在* .config文件(web.config,app.config)中,我发现您可以在字典中指定它,您必须传入OAuthTokenCredential并分配给APIContext.Config(工作的关键):
-->
似乎有点多余,必须将其传递到OAuthTokenCredential并将其设置为apiContext.Config,但这对我有用。
答案 4 :(得分:0)
仅供将来参考,PayPal .NET SDK现在提供了SDK's GitHub wiki的可用配置设置。这包括有关所有支持的PayPal配置设置及其默认值的信息。
如果您希望使用您的应用程序启用日志记录,则wiki还包含有关如何(可选)setup log4net配置信息的信息。
如果缺少任何信息或需要澄清,或者您想要求支持更多配置设置,请随时通过此处或on GitHub告知我们。
答案 5 :(得分:0)
var config = ConfigManager.Instance.GetProperties();
// Use OAuthTokenCredential to request an access token from PayPal
var accessToken = new OAuthTokenCredential(config).GetAccessToken();
网络配置:
<configuration>
<configSections>
<section name="paypal" type="PayPal.SDKConfigHandler, PayPal" />
</configSections>
<!-- PayPal SDK settings -->
<paypal>
<settings>
<add name="mode" value="sandbox"/>
<add name="clientId" value="_client_Id_"/>
<add name="clientSecret" value="_client_secret_"/>
</settings>
</paypal>
</configuration>