我进入了开发人员门户网站并为非美国帐户创建了一个测试帐户。使用此信用卡号码与下面的C#代码进行交易可以正常工作。
但是,我的问题是无论提供国家代码,paypal soap api都允许我进行交易而不会出现任何问题。这是正确的行为,还是有一些设置可以强制API来验证国家/地区。
//address of the card owner
var cardOwnerAddress = new AddressType
{
Street1 = request.BuyerAddress1,
Street2 = request.BuyerAddress2,
CityName = request.BuyerCity,
StateOrProvince = request.BuyerState,
PostalCode = request.BuyerZipCode,
CountryName = "USA",
Country = CountryCodeType.US, // country code
CountrySpecified = true
};
//card owner object
var cardOwner = new PayerInfoType
{
Payer = "",
PayerID = "",
PayerStatus = PayPalUserStatusCodeType.unverified,
PayerCountry = cardOwnerAddress.Country, // country code
Address = cardOwnerAddress,
PayerName = cardOwnerPayerName
};
答案 0 :(得分:1)
通常情况下,使用AVS - 地址验证系统以及CVV2,最常做的是检查邮政编码中的街道号码和号码(数字因为它们是不变的,人们可以输入" st 。"," street"," st"等等他们的地址。因此,这个国家真的无所谓。
对于某些卡片,也可以检查名称,但是正如您可以想象的那样,如果人们没有完全按照其显示的名称输入名称,这可能会很痛苦。
您还可以使用PayPal在您的帐户中设置过滤条件,以指定您接受付款的国家/地区 - 虽然这与验证无关,但它只是PayPals图层。
Paypal列出了您可以在此处设置的验证 https://developer.paypal.com/docs/classic/api/AVSResponseCodes/
有关AVS的一些信息可以在https://en.wikipedia.org/wiki/Address_Verification_System
找到