贝宝 C# 商人-SDK-dotnet

Posted

技术标签:

【中文标题】贝宝 C# 商人-SDK-dotnet【英文标题】:PayPal C# merchant-sdk-dotnet 【发布时间】:2017-07-14 19:04:00 【问题描述】:

我想通过 api 下载 PayPal 活动。 (即,只需获得一个月收款的报告)。

我们将 WooCommerce 与 PayPal ExpressCheckout 结合使用。它似乎使用了 NVP api。 (我尝试使用 REST API 并没有得到任何结果)。

我已经下载了 Merchant-sdk-dotnet 示例 (https://github.com/paypal/merchant-sdk-dotnet),但在运行它们时遇到了问题。我试图提取我需要的几部分并在控制台应用程序中实现它们(见下文)。 (VS2012 C#)

我正在使用上述 aspx 示例中的沙盒凭据(但也尝试了我们的实时/真实凭据)。

下面的代码总是导致 AckCodeType.FAILURE(并且没有事务)。

...
    using PayPal.PayPalAPIInterfaceService;
    using PayPal.PayPalAPIInterfaceService.Model;

    namespace PayPalToDBMerch
    
        class Program
        
            static void Main(string[] args)
            
                TransactionSearchRequestType request = new TransactionSearchRequestType();
                TransactionSearchReq wrapper = new TransactionSearchReq();
                wrapper.TransactionSearchRequest = request;
                Dictionary<string, string> configurationMap = Configuration.GetAcctAndConfig();
                PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);
                TransactionSearchResponseType transactionDetails = service.TransactionSearch(wrapper);
                if (transactionDetails.Ack == AckCodeType.FAILURE)
                
                    Console.WriteLine("This is always the result."); // 
                
                else
                
                    Console.WriteLine("I never get here.");
                
            
        

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我发现在这种情况下使用 NVP api 是正确的。 我发现 Merchant-sdk-dotnet 示例 (https://github.com/paypal/merchant-sdk-dotnet) 适用于这种情况。 当我找到 .Errors 方法时它有所帮助:-)

    if (transactionDetails.Ack == AckCodeType.FAILURE)
    
        foreach (var e in transactionDetails.Errors)
        
            Console.WriteLine(e.LongMessage); // 
        
    

我需要包含一个 StartDate 参数值

request.StartDate = DateTime.Now.AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ss");

【讨论】:

以上是关于贝宝 C# 商人-SDK-dotnet的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 验证贝宝付款

使用贝宝 REST C#

在 C# 中检查贝宝订阅状态

在 C# 中反序列化贝宝响应的正确方法

REST api (C# lib) 上的贝宝快速结帐

贝宝 API 和 VB