Paypal 响应 avscode(万事达卡)始终为“X”

Posted

技术标签:

【中文标题】Paypal 响应 avscode(万事达卡)始终为“X”【英文标题】:Paypal response avscode (Master Card) is always "X" 【发布时间】:2015-08-07 20:58:49 【问题描述】:

我正在编写一个模块,如果用户提供的邮政编码和地址与他卡中的信息不匹配,则该模块会阻止用户结账(使用 Paypal pro 支付方式、使用万事达卡、Visa 等)。

起初,我创建了 2 个沙盒帐户(商家和买家)来检查 paypal 的响应。这是我推送到贝宝沙盒的请求:

array (
  'PAYMENTACTION' => 'Sale',
  'IPADDRESS' => '127.0.0.1',
  'RETURNFMFDETAILS' => 1,
  'AMT' => '30.75',
  'CURRENCYCODE' => 'USD',
  'INVNUM' => '100011074',
  'NOTIFYURL' => 'http://www.spacex.local/paypal/ipn/',
  'EMAIL' => 'abcsdf@yahoo.com',
  'CREDITCARDTYPE' => 'MasterCard',
  'ACCT' => '5110925307034185',
  'EXPDATE' => '112024',
  'CVV2' => '185',
  'ISSUENUMBER' => NULL,
  'ITEMAMT' => '22.00',
  'TAXAMT' => '0.00',
  'SHIPPINGAMT' => '8.75',
  'BUSINESS' => NULL,
  'FIRSTNAME' => 'fgdgdfg',
  'LASTNAME' => 'dgdgdfg',
  'MIDDLENAME' => NULL,
  'SALUTATION' => NULL,
  'SUFFIX' => NULL,
  'COUNTRYCODE' => 'US',
  'STATE' => 'AK',
  'CITY' => 'sdfsdfsdf',
  'STREET' => 'asdfasdfsdf',
  'ZIP' => '12345',
  'PHONENUM' => '12345679',
  'SHIPTOCOUNTRYCODE' => 'US',
  'SHIPTOSTATE' => 'AK',
  'SHIPTOCITY' => 'sdfsdfsdf',
  'SHIPTOSTREET' => 'asdfasdfsdf',
  'SHIPTOZIP' => '12345',
  'SHIPTOPHONENUM' => '12345679',
  'SHIPTOSTREET2' => '',
  'STREET2' => '',
  'SHIPTONAME' => 'fgdgdfg dgdgdfg',
  'METHOD' => 'DoDirectPayment',
)

这是回复

array (
  'TIMESTAMP' => '2015-05-26T09:03:56Z',
  'CORRELATIONID' => '181a742e9983a',
  'ACK' => 'Success',
  'VERSION' => '72.0',
  'BUILD' => '16770825',
  'AMT' => '30.75',
  'CURRENCYCODE' => 'USD',
  'AVSCODE' => 'X',
  'CVV2MATCH' => 'M',
  'TRANSACTIONID' => '5SN572797S568915L',
)

我需要的信息是AVSCODE,其值为“X”,表示“街道地址和 9 位邮政编码匹配”。 (见https://developer.paypal.com/docs/classic/api/AVSResponseCodes/#avs-response-codes)。但是,我的买家沙盒帐户甚至没有任何地址和邮政编码(因为我找不到任何地方可以将地址和邮政编码保存到我的帐户),为什么会发生这种情况?

【问题讨论】:

【参考方案1】:

卡,因此 AVS 验证,在沙盒中不是真实的。

AVS 是发卡机构根据卡上的帐单地址进行的检查,而不是 PayPal 对 PayPal 帐户地址进行的检查(请注意,PayPal 帐户本身甚至不是“帐单地址”)。没有(真正的)卡,没有(真正的)发卡机构,没有(真正的)AVS。

关于如何在沙盒中进行负面测试(包括 AVS),请参阅:

https://developer.paypal.com/docs/classic/lifecycle/sb_error-conditions/

(请注意,这也是“paypal sandbox avs test”的***谷歌参考)

【讨论】:

哦,哇,这不是贝宝提供给我们测试的好方法。但是非常感谢你,我的英雄!

以上是关于Paypal 响应 avscode(万事达卡)始终为“X”的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 订单状态挂起钩子不适用于 PayPal 交易

协助 PayPal 自适应支付 - IOS 和 Android 开发

PayPal PayFlow 链接测试交易中的 MasterCard 类型的用户身份验证失败

使用 PHP 在网站中集成万事达卡支付

paypal-php-sdk中的PayPal-Mock-Response

HTML PayPal 始终使用德语