PayPalRest API无法读取流

PayPalRest API无法读取流,paypal,Paypal,这发生在沙箱或生产环境中。在沙箱中,如果我输入带有代码的4111111111签证,以及exp日期。。。当我点击payment.create(令牌)行时,抛出了一个异常,“流不可读”。如果我输入一些其他CC号码,如4234567890123456,则付款效果良好。在生产中,如果我使用4234。。。我得到的流是不可读的错误。我理解测试卡并不总是有效的,但我希望信用卡回复无效。我的问题是,我的一些客户收到了流错误。。。。如果我在生产中投入真正的CC,效果会很好。。但是如果我换了一个号码,我会得到无效的

这发生在沙箱或生产环境中。在沙箱中,如果我输入带有代码的4111111111签证,以及exp日期。。。当我点击payment.create(令牌)行时,抛出了一个异常,“流不可读”。如果我输入一些其他CC号码,如4234567890123456,则付款效果良好。在生产中,如果我使用4234。。。我得到的流是不可读的错误。我理解测试卡并不总是有效的,但我希望信用卡回复无效。我的问题是,我的一些客户收到了流错误。。。。如果我在生产中投入真正的CC,效果会很好。。但是如果我换了一个号码,我会得到无效的卡错误。。。。因此,有时它会正确地发回,而有时则是流错误。。。我最近使用Nuget将包更新为最新和最好的API,但是其他人有什么建议吗

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

var creditCard=新信用卡();
creditCard.number=req.cardname;
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=新地址()
{
第1行=请求地址1,
城市=要求的城市,
状态=请求状态,
邮政编码=req.ZipCode,
国家/地区代码=“美国”
};
var付款=新付款();
payment.intent=“销售”;
payment.payer=新的付款人();
payment.transactions=新列表();
var t=新事务()
{
说明=要求说明,
金额=新金额()
{
total=请求的TotalPayment.ToString(“N2”),
货币=“美元”,
},
};
t、 项目列表=新项目列表();
t、 item_list.items=新列表();
t、 item_list.items.Add(新项()
{
名称=要求说明,
quantity=“1”,
价格=要求的总付款额。ToString(“N2”),
货币=“美元”,
});
支付.交易.添加(t);
payment.payer.funding_instruments=新列表();
payment.payer.payment\u method=“信用卡”;
var fundingInstrument=新的fundingInstrument();
fundingInstrument.credit_card=信用卡;
付款。付款人。融资工具。添加(融资工具);
var pay=付款。创建(令牌);
如果(req.PaymentOption!=PayOption.UsePayPal&&pay.state==PayPalStateApproved
&&pay.transactions.Any()&&pay.transactions[0]。相关资源。Any()
&&pay.transactions[0]。相关资源[0]。sale!=null
&&!String.IsNullOrEmpty(pay.transactions[0]。相关的_资源[0]。sale.id))
{
resp.TransactionID=pay.transactions[0]。相关的资源[0]。sale.id;
}
其他的
{
响应状态=状态错误;
添加(新消息{Code=“paypal”,Text=pay.state});
}
}
捕获(例外情况除外)
{
var err=支票支付错误(ex);
resp.Messages.Add(新消息{Code=“paypal”,Text=String.IsNullOrEmpty(err)?例如消息:err});
响应状态=状态错误;
}
返回响应;
以下是日志条目,第一个是如果重试设置为>0,第二个是不重试 2013-08-29 09:41:45852[33]调试PayPal.PayPalResource[(null)]用户代理:PayPalSDK/rest sdk dotnet 0.7.3;lang=DOTNET;v=4.0.30319.18052;位=64;os=Windows7.6.1.7601.65536; 2013-08-29 09:41:45852[33]调试PayPal.PayPalResource[(null)]PayPal请求Id:a781e6bb-c0b0-4f06-abf8-1202dbc17a59 2013-08-29 09:41:45920[33]调试PayPal.Manager.ConnectionManager[(null)]{“意图”:“销售”、“付款人”:{“支付方法”:“信用卡”、“资金工具”:{“信用卡”:{“号码”:“4234567890123456”,“类型”:“签证”、“到期月”:5,“到期年”:2015年,“cvv2”:“123”,“名字”:“米奇”,“姓氏”:“基南”,“账单地址”:{“line1”:“主街”,“城市”:“丹佛”,“国家代码”:“美国”,“邮政代码”:“80210”,“州”:“CO”},“付款人id”:“205”}],“交易”:[{“金额”:“{”货币”:“美元”,“总额”:“4.75”},“说明”:“WFS午餐订单”,“项目清单”:{“项目”:[{”数量::“1”,“名称”:“WFS午餐订单”,“价格”:“4.75”,“货币”:“美元”}}}] 2013-08-29 09:41:49505[33]ERROR PayPal.Manager.ConnectionManager[(null)]错误响应:{“name”:“INTERNAL_SERVICE_ERROR”,“message”:“发生了内部服务错误”,“information_link”:“debug_id”:“2520071cde1ca”} 2013-08-29 09:41:49506[33]INFO PayPal.Manager.ConnectionManager[(null)]从服务器获取了InternalServerError状态代码 2013-08-29 09:41:49507[33]错误PayPal.Exception.PayPaleException[(null)]HttpConnection执行中出现异常:流不可读。 PayPal.Exception.PayPaleException:HttpConnection中的异常执行:流不可读。-->System.ArgumentException:流不可读。 在System.IO.StreamReader..ctor处(流、编码、布尔检测编码、字节顺序标记、Int32 bufferSize、布尔离开打开) at System.IO.StreamReader..ctor(流) 在PayPal.HttpConnection.Execute(字符串负载,HttpWebRequest-httpRequest) ---内部异常堆栈跟踪的结束---

这是第二个 2013-08-29 09:44:27685[16]调试PayPal.PayPalResource[(null)]用户代理:PayPalSDK/rest sdk点
            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;