php - Paypal 响应 avscode(万事达卡)始终为 "X"

标签 php magento paypal paypal-sandbox

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

首先,我创建了 2 个沙箱帐户(商家和买家)来检查 paypal 的响应。这是我推送到 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 )。但是,我的买家沙盒帐户甚至没有任何地址和邮政编码(因为我找不到任何地方可以将地址和邮政编码保存到我的帐户),为什么会发生这种情况?

最佳答案

卡片以及 AVS 验证在沙盒中并不真实。

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

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

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

(请注意,这也是“paypal 沙盒 avs 测试”的顶级 google 引用)

关于php - Paypal 响应 avscode(万事达卡)始终为 "X",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30454259/

相关文章:

php - 通过 SPF 验证电子邮件

php - json_decode 返回字符串类型而不是对象

Magento:添加到购物车时的产品动态价格变化

jquery - Magento 使用 scriptaculous 的目的是什么?

PHP - 将从 paypal 发送的数据解码为友好的可读格式

php - 电子邮件链接中的 PayPal 自定义变量

php - MySQL ifnull 相当于 php

magento - 分层导航过滤器中的子类别

php - 如何使用 PHP SDK 使用 PayPal Express Checkout

php - 将 S_POST 数据传递给 jquery