Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PayPal SDK未预先填充计费字段_C#_.net_Paypal - Fatal编程技术网

C# PayPal SDK未预先填充计费字段

C# PayPal SDK未预先填充计费字段,c#,.net,paypal,C#,.net,Paypal,我正在使用PayPal Merchant.NET SDK实现快速结账 下面的代码片段用于我的SetExpressCheckout调用。唯一预先填充的字段是电子邮件地址。有人知道这样做的正确方法吗?顺便说一句,PayPal账单屏幕有名字和姓氏字段,但API只有名字字段 SetExpressCheckoutRequestType request = new SetExpressCheckoutRequestType(); SetExpressCheckoutRequestDetailsType ec

我正在使用PayPal Merchant.NET SDK实现快速结账

下面的代码片段用于我的SetExpressCheckout调用。唯一预先填充的字段是电子邮件地址。有人知道这样做的正确方法吗?顺便说一句,PayPal账单屏幕有名字和姓氏字段,但API只有名字字段

SetExpressCheckoutRequestType request = new SetExpressCheckoutRequestType();
SetExpressCheckoutRequestDetailsType ecDetails = new SetExpressCheckoutRequestDetailsType();
...
ecDetails.ReqConfirmShipping = "0";
ecDetails.NoShipping = "1";
ecDetails.AddressOverride = "1";
ecDetails.SolutionType = SolutionTypeType.SOLE;
PaymentDetailsType paymentDetails = new PaymentDetailsType();
CurrencyCodeType currency = CurrencyCodeType.USD;
paymentDetails.OrderDescription = "Test";
paymentDetails.OrderTotal = new BasicAmountType(currency, "1.00");
ecDetails.PaymentDetails.Add(paymentDetails);
ecDetails.PaymentAction = PaymentActionCodeType.SALE;
ecDetails.LandingPage = LandingPageType.BILLING;
ecDetails.BuyerEmail = "bob@smith.com";
AddressType address = new AddressType();
address.Name = "Bob";
address.Street1 = "123 somewhere st";
address.Street2 = "#32";
address.CityName = "Houston";
address.StateOrProvince = "TX";
address.PostalCode = "12345";
address.CountryName = "US";
address.Phone = "123-456-7890";
ecDetails.BillingAddress = address;
request.SetExpressCheckoutRequestDetails = ecDetails;
我已经使用了前3个设置,但似乎没有任何帮助。电子邮件已填充,订单描述良好。国家/地区是根据我的考试帐户设置的,而不是来自的地址

ADDROVERRIDE
(可选)确定PayPal页面是否应显示您在此SetExpressCheckout请求中设置的发货地址,而不是PayPal为该买家存档的发货地址。在文件中显示PayPal街道地址不允许买家编辑该地址。它是以下值之一:

0–PayPal页面不应显示发货地址

1–PayPal页面应显示发货地址

字符长度和限制:1个单字节数字字符

使用
ecDetails.AddressOverride=1
作为此的.NET SDK版本

您还需要设置
paymentDetails.ShipToAddress
而不是
ecDetails.BillingAddress
填写账单地址需要设置
PAYMENTREQUEST\u 0\u SHIPTONAME
等字段。这意味着您的第一个
ecDetails。PaymentDetails
必须具有与其关联的地址


要设置用户名,它是一个字符串,应该是
address.name=“Bob Smith”

另请注意,这确实设置了“Guest Checkout”的帐单和发货地址。但是,用户可以更改帐单地址,但不能更改发货地址。谢谢,但这不起作用。我正在尝试设置帐单地址而不是发货地址。您可以尝试设置
paymentDetails.ShipToAddress
而不是
ecDetails.BillingAddress
我可以获得要填写的帐单地址,但需要设置
PAYMENTREQUEST\u 0\u SHIPTONAME
等字段吗。这意味着您的第一个
ecDetails。PaymentDetails
必须具有与其关联的地址。是的,这就是解决方案。我必须指定一个发货地址,即使我没有显示它,然后账单地址出现了。应该在什么地方记录下来。如果你把这个答案写成一个答案,我会把它标为正确答案。ThanksI想指出的是,现在PayPal结帐审查页面显示了发货地址。这是一个捐款结帐,他们没有航运涉及。这不是一个理想的解决方案。