我正在为 Paypal Payments Pro 使用 .NET SDK。示例应用程序将 API 帐户凭证存储在网站的Web.config
文件中。相反,我希望能够从数据库中提取这些凭据。
一些搜索出现了这个条目,它提出了同样的问题:在 web.config 中编辑设置。不幸的是,接受的答案没有解决如何将凭据存储在其他地方。相反,它展示了如何以编程方式修改Web.config
文件。
有没有办法以编程方式指定 Paypal Payments Pro API 凭据?
谢谢
我正在为 Paypal Payments Pro 使用 .NET SDK。示例应用程序将 API 帐户凭证存储在网站的Web.config
文件中。相反,我希望能够从数据库中提取这些凭据。
一些搜索出现了这个条目,它提出了同样的问题:在 web.config 中编辑设置。不幸的是,接受的答案没有解决如何将凭据存储在其他地方。相反,它展示了如何以编程方式修改Web.config
文件。
有没有办法以编程方式指定 Paypal Payments Pro API 凭据?
谢谢
UDPATE
您应该能够重写ConfigManager
类和SDKConfigHandler
类以从数据库中检索值(不是web.config
)。
ConfigManager
检索数据并使用SDKConfigHandler
类来构造数据,以便其他方法和类可以使用它。
您将在\PayPal_Merchant_SDK\Manager\
.
ORIGINAL
在查看SDK之后,看起来您所要做的就是使用新UserInfo
对象指定凭据:
UserInfo User = new UserInfo("<user>", "<vendor>", "<partner>", "<password>");
您只需要填充user
、vendor
、partner
和password
,因此我认为没有理由不能将它们存储在数据库中并在必要时检索它们。
该UserInfo
对象作为参数传递给SaleTransaction
构造函数。
SaleTransaction Trans = new SaleTransaction(User, Connection, Inv, Card, RequestID);
似乎只要在切换凭据后重新实例化UserInfo
对象和SaleTransaction
对象,就可以了。
PayflowUtility.AppSettings
似乎只是从 中检索值的辅助方法app.config
。从第 87 行开始DOSaleComplete.cs
:
Should you choose to store the login information (Vendor, User, Partner and Password) in
app.config, you can retrieve the data using PayflowUtility.AppSettings.
For Example:
App.Config Entry: <add key="PayflowPartner" value="PayPal"/>
String mUser = PayflowUtility.AppSettings("PayflowUser");
String mVendor = PayflowUtility.AppSettings("PayflowVendor");
String mPartner = PayflowUtility.AppSettings("PayflowPartner");
String mPassword = PayflowUtility.AppSettings("PayflowPassword");
UserInfo User = new UserInfo (mUser, mVendor, mPartner, mPassword);
目前,PayPal .NET SDK 旨在仅从配置文件中选择 API 帐户凭据。也许,未来的版本将支持动态认证。
谢谢
有人在 github 上分叉项目以使用哈希表而不是 web.config https://github.com/paypal/sdk-core-dotnet/pull/2
此变更集允许以哈希表形式将 PayPal 配置传递给 PayPalAPIInterfaceServiceService。这允许将配置数据存储在外部配置文件或数据库中,而不是强制使用 app/web.config 文件。这对于执行多个调用应用程序使用的 PayPal SDK 操作的共享类库特别有用;将大量帐户存储在数据库而不是配置文件中的能力也是有利的。支持现有 app/web.config 配置的向后兼容性。