【发布时间】:2015-10-29 15:57:36
【问题描述】:
我正在使用适用于 .NET 的 PayPal Merchant SDK (v 2.15.117) 并尝试从 GetExpressCheckoutDetailsRequestType.GetExpressCheckoutDetailsResponseDetails 调用中检索送货地址信息、客户的电子邮件地址和电话号码。送货地址按预期填充,但对于我来说,我无法弄清楚如何获取买家的电子邮件或电话号码。至少我们必须有电子邮件来沟通订单(即跟踪电子邮件)。
我看到了一个 BuyerMarketingEmail 属性,但它为空,我认为这是买家可以选择提供的可选电子邮件。对于电话,我看到 PayerInfo.ContactPhone 属性,但它也是空的(我不太担心拥有它,但它会很好地解决客户服务问题或提供给 FedEx 等地面托运人)。
如果这很重要,我正在使用 PayPal 沙盒。
我错过了什么?
var getExpressCheckoutDetails = new GetExpressCheckoutDetailsReq();
var getExpressCheckoutDetailsRequest = new GetExpressCheckoutDetailsRequestType(token);
getExpressCheckoutDetails.GetExpressCheckoutDetailsRequest = getExpressCheckoutDetailsRequest;
var service = new PayPalAPIInterfaceServiceService();
paypalResponse = service.GetExpressCheckoutDetails(getExpressCheckoutDetails);
if (paypalResponse != null)
{
//Success values check for a matching PayerID to validate the token response
if (paypalResponse.Ack.ToString().Trim().ToUpper().Equals("SUCCESS") &&
PayerID == paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.PayerID)
{
checkout.ShippingInfo.ShippingName = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.Name;
checkout.ShippingInfo.ShippingAddress1 = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.Street1;
checkout.ShippingInfo.ShippingAddress2 = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.Street2;
checkout.ShippingInfo.ShippingCity = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.CityName;
checkout.ShippingInfo.ShippingState = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.StateOrProvince;
checkout.ShippingInfo.ShippingZip = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.PostalCode;
checkout.ShippingInfo.ShippingCountry = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Address.Country.ToString();
//these next two are always null
checkout.BillingInfo.Email = paypalResponse.GetExpressCheckoutDetailsResponseDetails.BuyerMarketingEmail;
checkout.ShippingInfo.PhoneNumber = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.ContactPhone;
}
}
【问题讨论】:
-
在翻阅 PayPal 支持文章时,我确实遇到了一个 VB.net 示例,该示例展示了如何获取买家的电子邮件地址。在上面的示例中,它看起来像:
checkout.BillingInfo.Email = paypalResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.Payer;考虑到买家的用户名是他们的电子邮件地址,这是有道理的。不过,还没有得到电话号码的运气。 ContactPhone 属性似乎很明显 - 也许这是一个沙盒问题?
标签: paypal