结算字段未由PayPal SDK预先填充

时间:2014-04-09 23:58:19

标签: c# .net paypal

我正在使用PayPal Merchant .NET SDK http://paypal.github.io/sdk/来实施快速结账。

下面的代码片段用于我的SetExpressCheckout调用。预先填充的唯一字段是电子邮件地址。有谁知道这样做的正确方法? BTW - 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个设置,并且它似乎没有帮助。电子邮件已填充,订单说明正常。国家/地区是根据我的测试帐户设置的,而不是地址

1 个答案:

答案 0 :(得分:2)

来自https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/

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

0 - PayPal页面不应显示送货地址。

1 - PayPal页面应显示送货地址。

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

使用ecDetails.AddressOverride = 1;作为.NET SDK版本。

此外,您需要设置paymentDetails.ShipToAddress而非ecDetails.BillingAddress填写帐单邮寄地址,并设置PAYMENTREQUEST_0_SHIPTONAME等字段。这意味着您的第一个ecDetails.PaymentDetails必须具有与之关联的地址。

为了设置用户名,它是一个address.Name = "Bob Smith";

的字符串
相关问题