2013-08-19 21 views
1

这发生在Sandbox或生产中。如果我在代码为4111111111111111的沙箱中输入代码和exp date ...当我点击payment.Creat(token)行时,会抛出异常,“Stream was not readable”。如果我输入其他一些CC号码(如423456789),付款工作正常。在生产中,如果我使用那个4234 ...我得到的流是不可读的错误。我知道测试卡并不总是有效,但我希望得到一张信用卡无效回复。我遇到的问题是,我的一些客户得到流错误....如果我在生产中放入真正的CC,它工作正常..但如果我更改1号码,我得到无效卡错误....所以有时它会正确地发回它,其他时间是Stream错误......我最近使用Nuget将包更新到最新和最好的API,但其他人是否有任何建议?Stream对于PayPalRest API而言是不可读的

这是我的相关代码 尝试 var token = GetAPIToken();

  var creditCard = new CreditCard(); 
      creditCard.number = req.CardNumber; 
      creditCard.expire_month = req.ExpMonth; 
      creditCard.expire_year = req.ExpYear; 
      creditCard.first_name = req.FirstName; 
      creditCard.last_name = req.LastName; 
      creditCard.type = req.CardType; 
      creditCard.payer_id = req.UserId.ToString(); 
      creditCard.cvv2 = req.SecurityCode; 

      creditCard.billing_address = new Address() 
      { 
       line1 = req.Address1, 
       city = req.City, 
       state = req.State, 
       postal_code = req.ZipCode, 
       country_code = "US" 
      }; 


      var payment = new Payment(); 
      payment.intent = "sale"; 

      payment.payer = new Payer(); 
      payment.transactions = new List<Transaction>(); 

      var t = new Transaction() 
      { 
       description = req.Description, 
       amount = new Amount() 
       { 
        total = req.TotalPayment.ToString("N2"), 
        currency = "USD", 
       }, 
      }; 

      t.item_list = new ItemList(); 
      t.item_list.items = new List<Item>(); 
      t.item_list.items.Add(new Item() 
       { 
        name = req.Description, 
        quantity = "1", 
        price = req.TotalPayment.ToString("N2"), 
        currency = "USD", 
       }); 
      payment.transactions.Add(t); 

      payment.payer.funding_instruments = new List<FundingInstrument>(); 
      payment.payer.payment_method = "credit_card"; 

      var fundingInstrument = new FundingInstrument(); 
      fundingInstrument.credit_card = creditCard; 


       payment.payer.funding_instruments.Add(fundingInstrument); 

      var pay = payment.Create(token); 
      if (req.PaymentOption != PayOption.UsePayPal && pay.state == PayPalStateApproved 
        && pay.transactions.Any() && pay.transactions[0].related_resources.Any() 
        && pay.transactions[0].related_resources[0].sale != null 
        && !String.IsNullOrEmpty(pay.transactions[0].related_resources[0].sale.id)) 
      { 
       resp.TransactionID = pay.transactions[0].related_resources[0].sale.id; 
      } 
      else 
      { 
       resp.Status = Status.Error; 
       resp.Messages.Add(new Message { Code = "paypal", Text = pay.state }); 
      } 
     } 
     catch (Exception ex) 
     { 
      var err = CheckPayPalError(ex); 
      resp.Messages.Add(new Message { Code = "paypal", Text = String.IsNullOrEmpty(err) ? ex.Message : err }); 

      resp.Status = Status.Error; 
     } 

     return resp; 

这里是日志条目中,第一是,如果重试设置为> 0,第二个是没有重试 2013年8月29日09:41:45852 [33] DEBUG PayPal.PayPalResource [( null)] User-Agent:PayPalSDK/rest-sdk-dotnet 0.7.3; lang = DOTNET; v = 4.0.30319.18052; bit = 64; os = Windows 7 6.1.7601.65536; 2013-08-29 09:41:45,852 [33] DEBUG PayPal.PayPalResource [(null)] PayPal-Request-Id:a781e6bb-c0b0-4f06-abf8-1202dbc17a59 2013-08-29 09:41:45,920 [ 33] DEBUG PayPal.Manager.ConnectionManager [(null)] {“intent”:“sale”,“payer”:{“payment_method”:“credit_card”,“funding_instruments”:[{“credit_card”:{“number” “423456789”, “类型”: “签证”, “expire_month”:5 “EXPIRE_YEAR”:2015, “CVV2”: “123”, “如first_name”: “米奇”, “姓氏”: “基南”,“billing_address “:{”line1“:”123 Main St“,”city“:”Denver“,”country_code“:”US“,”postal_code“:”80210“,”state“:”CO“},”payer_id“ “205”}}]},“transactions”:[{“amount”:{“currency”:“USD”,“total”:“4.75”},“description”:“WFS Lunch Order”,“item_list” {“items”:[{“quantity”:“1”,“name”:“WFS Lunch Order”,“price”:“4.75”,“currency”:“USD”}]}}]} 2013-08 -29 09:41:49,505 [33] ERROR PayPal.Manager.ConnectionManager [(null)]错误回应:{“name”:“INTERNAL_SERVICE_ERROR”,“message”:“内部服务错误已发生“,”information_link“:”https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR“,”debug_id“:”2520071cde1ca“}信息PayPal.Manager.ConnectionManager [(null)]得到InternalServerError状态代码从服务器 2013-08-29 09:41:49,507 [33] ERROR PayPal.Exception.PayPalException [(null)] HttpConnection中的异常执行:流不可读。 PayPal.Exception.PayPalException:HttpConnection中的异常执行:Stream不可读。 ---> System.ArgumentException:流不可读。 (Stream stream,Encoding encoding,Boolean detectEncodingFromByteOrderMarks,Int32 bufferSize,Boolean leaveOpen) at System.IO.StreamReader..ctor(Stream stream) at PayPal.HttpConnection.Execute(String payLoad ,HttpWebRequest的HttpRequest的) ---内部异常堆栈跟踪的结尾---

这里是第二 2013年8月29日09:44:27685 [16] DEBUG PayPal.PayPalResource [(空)]用户 - 代理:PayPalSDK/rest-sdk-dotnet 0.7.3; lang = DOTNET; v = 4.0.30319.18052; bit = 64; os = Windows 7 6.1.7601.65536; 2013-08-29 09:44:27,686 [DEBUG] PayPal.PayPalResource [(null)] PayPal-Request-Id:1d5c68e5-4b4b-4876-8bf4-3b9f64d0afb6 2013-08-29 09:44:27,753 [ 16] DEBUG PayPal.Manager.ConnectionManager [(null)] {“intent”:“sale”,“payer”:{“payment_method”:“credit_card”,“funding_instruments”:[{“credit_card”:{“number” “423456789”, “类型”: “签证”, “expire_month”:5 “EXPIRE_YEAR”:2015, “CVV2”: “123”, “如first_name”: “米奇”, “姓氏”: “基南”,“billing_address “:{”line1“:”123 Main St“,”city“:”Denver“,”country_code“:”US“,”postal_code“:”80210“,”state“:”CO“},”payer_id“ “205”}}]},“transactions”:[{“amount”:{“currency”:“USD”,“total”:“4.75”},“description”:“WFS Lunch Order”,“item_list” {“items”:[{“quantity”:“1”,“name”:“WFS Lunch Order”,“price”:“4。75“,”currency“:”USD“}]}}]} 2013-08-29 09:44:28,847 [16] ERROR PayPal.Manager.ConnectionManager [(null)]错误回应:{”name“:” INTERNAL_SERVICE_ERROR“,”message“:”发生内部服务错误“,”information_link“:”https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR“,”debug_id“:”465701e606a56“} 2013-08-29 09:44:28,848信息PayPal.Manager .ConnectionManager [(null)]从服务器得到InternalServerError状态代码 2013-08-29 09:44:28,850 [16] ERROR PayPal.Exception.PayPalException [(null)] HttpConnection中的异常执行 PayPal.Exception.PayPalException:Exception在HttpConnection执行

+0

我遇到同样的问题。我尝试的每个测试信用卡都会给我一个INTERNAL_SERVICE_ERROR响应。我联系了贝宝支持,他们把我推荐到这个帖子上:) – Cully

回答

0

我们有时会看到沙盒中的测试卡4111xxx的问题,并且正在研究相同的修复方法,因此请使用沙箱中的其他测试卡进行测试G。

注册流读取错误,将测试提供的代码并更新回来。

+0

对此有何更新?我期望4111-1111-1111-1111或4234-5678-9012-3456在任一环境中工作。但我有客户输入一个CC号码,大概是他们的卡上得到相同的流是不可读的...可能是他的卡失败了一些验证(地址,邮政编码,CVV代码等...)但那些似乎返回有效的错误 –

+0

你仍然面临这个问题?对于无效的测试卡,我收到了正确的无效信用卡回复。如果您仍然面临问题,请使用实际的JSON请求负载更新注释,而不需要您的凭据等。 –

+0

是的,我仍然得到这个。我使用从GIT下载的SDK运行了一些测试,并且能够获得更多信息......当我第一次发出请求时,它返回一个Java Read Timeout错误...然后它尝试重试并获取Stream是不可读的错误...真正的问题可能是超时,但重试不起作用在这种情况下...我从日志消息中添加JSON调用...让我知道如果这有帮助... –

0

在与PayPal支持部门谈到此问题之后:显然即使在沙盒中,如果信用卡使用太多,它也会被阻止。他们建议尝试其他的假身份证号码,并叫我去这个网站生成它们:

http://www.fakenamegenerator.com/

使用卡产生已经为我工作。

相关问题