Hi, folks -- I've had a problem with some of my customers not being able to get aMember to accept their billing address, even when they have entered it EXACTLY like it's shown on their credit card statement. We use Verisign for payment processing, so the problem might be there, but I thought I would make sure that we have aMember set up and functioning properly first. Here's an example -- this customer's transaction failed (all six times he tried it). When I go into his User Payments/Subscriptions page in the admin suite and select the "Not-Paid" transaction, here's part of the printout, showing one of the failed attempts: PARTNER Verisign USER * deleted for privacy * VENDOR * deleted for privacy * PWD ********* AMT 54.99 CURRENCY USD ACCT **** **** **** 5613 EXPDATE 0813 TENDER C TRXTYPE S COMMENT2 * deleted for privacy * COMMENT1 * deleted for privacy * NAME * deleted for privacy * STREET * deleted for privacy * ZIP * deleted for privacy * CVV2 *** X-VPS-REQUEST-ID 87c99f0b62707d35299b86604ff257ec RESULT 0 PNREF VXHF9C5C2448 RESPMSG Approved AUTHCODE 02215C AVSADDR N AVSZIP Y CVV2MATCH Y IAVS N PREFPSMSG No Rules Triggered POSTFPSMSG No Rules Triggered What jumps out at me is the RESPMSG "Approved" line. The customers receive a message that the transaction has failed due to address not matching, but these transactions actually show up on our customer's cards as charges, then they disappear. I've gone into PayPal Manager and have set address verification to its lowest level ... so I'm stumped. Any suggestions?
Payflow_pro plugin voids transactions that have AVS or CVV mismatch. If you want to disable this, edit /amember/plugins/payment/payflow_pro/payflow_pro.inc.php and change this block: PHP: if ($res['RESULT']=='0'){ if ($charge_type == CC_CHARGE_TYPE_TEST){ /// void transaction if transaction type is test $this->void_transaction($res['PNREF'], $log, $request_id); } elseif ((($res['AVSADDR']=='N') || ($res['AVSZIP'] == 'N') || ($res[CVV2MATCH]=='N')) && ($charge_type != CC_CHARGE_TYPE_RECURRING)) { /// void transaction if there is AVS mismatch $this->void_transaction($res['PNREF'], $log, $request_id); $msg = _PLUG_PAY_PAYFLPRO_CCDECL; return array(CC_RESULT_DECLINE_PERM, $msg, "", $log); } return array(CC_RESULT_SUCCESS, "", $res['PNREF'], $log); } elseif ($res['RESULT'] > 0) { return array(CC_RESULT_DECLINE_PERM, $res['RESPMSG'], "", $log); } else { return array(CC_RESULT_INTERNAL_ERROR, $res['RESPMSG'], "", $log); } change it to: PHP: if ($res['RESULT']=='0'){ if ($charge_type == CC_CHARGE_TYPE_TEST){ /// void transaction if transaction type is test $this->void_transaction($res['PNREF'], $log, $request_id); } elseif (($res[CVV2MATCH]=='N') && ($charge_type != CC_CHARGE_TYPE_RECURRING)) { /// void transaction if there is AVS mismatch $this->void_transaction($res['PNREF'], $log, $request_id); $msg = _PLUG_PAY_PAYFLPRO_CCDECL; return array(CC_RESULT_DECLINE_PERM, $msg, "", $log); } return array(CC_RESULT_SUCCESS, "", $res['PNREF'], $log); } elseif ($res['RESULT'] > 0) { return array(CC_RESULT_DECLINE_PERM, $res['RESPMSG'], "", $log); } else { return array(CC_RESULT_INTERNAL_ERROR, $res['RESPMSG'], "", $log); }