12) $strPaySysError .= "Please enter valid credit card expiration month".". "; elseif (strlen($cardexp1) < 2) $cardexp1 = "0".$cardexp1; $cardexp2 = IntVal($_REQUEST["cardexp2"]); if ($cardexp2 < 5 || $cardexp2 > 50) $strPaySysError .= "Please enter valid credit card expiration year".". "; elseif (strlen($cardexp2) < 2) $cardexp2 = "0".$cardexp2; $noc = Trim($_REQUEST["noc"]); if (strlen($noc) <= 0) $strPaySysError.= "Please enter valid cardholder name".". "; $address1 = Trim($_REQUEST["address1"]); if (strlen($address1) <= 0) $strPaySysError.= "Please enter valid cardholder address".". "; $zipcode = Trim($_REQUEST["zipcode"]); if (strlen($zipcode) <= 0) $strPaySysError.= "Please enter valid cardholder zip".". "; if (strlen($strPaySysError) <= 0) { $ret_var = ""; $AMT = $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"]; if ($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"] != "USD") { $AMT = CCurrencyRates::ConvertCurrency($AMT, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], "USD"); $additor = 1; for ($i = 0; $i < SALE_VALUE_PRECISION; $i++) $additor = $additor / 10; $AMT_tmp = round($AMT, SALE_VALUE_PRECISION); while ($AMT_tmp < $AMT) $AMT_tmp = round($AMT_tmp + $additor, SALE_VALUE_PRECISION); $AMT = $AMT_tmp; } $AMT = str_replace(",", ".", $AMT); $cardExp = $cardexp1.$cardexp2; $parms = "ACCT=".urlencode($cardnum); // Credit card number $parms .= "&CVV2=".urlencode($cvv2); // CVV2 $parms .= "&AMT=".urlencode($AMT); // Amount (US Dollars) $parms .= "&EXPDATE=".urlencode($cardExp); // Expiration date $parms .= "&PARTNER=".urlencode($PF_PARTNER); // Partner $parms .= "&PWD=".urlencode($PF_PWD); // Password $parms .= "&TENDER=C"; // ... $parms .= "&TRXTYPE=S"; // Kind of transaction: Sale $parms .= "&USER=".urlencode($PF_USER); // Login ID $parms .= "&VENDOR=".urlencode($PF_USER); // Vendor ID $parms .= "&ZIP=".urlencode($zipcode); // Zip $parms .= "&STREET=".urlencode($address1); // Address $parms .= "&COMMENT1=".$ORDER_ID; $parms .= "&COMMENT2=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]); $ret_com = "$strExePath $PF_HOST $PF_PORT \"$parms\" 30"; putenv("PFPRO_CERT_PATH=".$PFPRO_CERT_PATH); exec($ret_com, $arOutput, $ret_var); $strOutput = $arOutput[0]; parse_str($strOutput, $arResult); if (is_array($arResult) && strlen($arResult["RESULT"])>0) { $arPaySysResult = array( "PS_STATUS" => (($arResult["RESULT"] == 0) ? "Y" : "N"), "PS_STATUS_CODE" => $arResult["RESULT"], "PS_STATUS_DESCRIPTION" => $arResult["RESPMSG"]." - ".$arResult["PREFPSMSG"], "PS_STATUS_MESSAGE" => $arResult["PNREF"], "PS_SUM" => $AMT, "PS_CURRENCY" => "USD", "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID))), "USER_CARD_TYPE" => false, "USER_CARD_NUM" => $cardnum, "USER_CARD_EXP_MONTH" => $cardexp1, "USER_CARD_EXP_YEAR" => "20".$cardexp2, "USER_CARD_CODE" => $cvv2 ); $arResult["RESULT"] = IntVal($arResult["RESULT"]); if ($arResult["RESULT"] != 0) { if ($arResult["RESULT"] < 0) $strPaySysError .= "Communication Error: [".$arResult["RESULT"]."] ".$arResult["RESPMSG"]." - ".$arResult["PREFPSMSG"].". "; elseif ($arPaySysRes_tmp["RESULT"] == 125) $strPaySysError .= "Your payment is declined by Fraud Service. Please contact us to make payment".". "; elseif ($arResult["RESULT"] == 126) $strPaySysWarning .= "Your payment is under review by Fraud Service. We contact you in 48 hours to get more specific information".". "; elseif (is_set($arErrorCodes, $arResult["RESULT"])) $strPaySysError .= $arErrorCodes[$arResult["RESULT"]].". "; else $strPaySysError .= "Unknown error".". "; } } else $strPaySysError .= "Response error".". "; /* $arPaySysResult = array( "PS_STATUS" => "Y", "PS_STATUS_CODE" => "AA35", "PS_STATUS_DESCRIPTION" => "Good test", "PS_STATUS_MESSAGE" => "Yes!!!", "PS_SUM" => $AMT, "PS_CURRENCY" => "USD", "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID))), "USER_CARD_TYPE" => false, "USER_CARD_NUM" => $cardnum, "USER_CARD_EXP_MONTH" => $cardexp1, "USER_CARD_EXP_YEAR" => "20".$cardexp2, "USER_CARD_CODE" => $cvv2 ); $strPaySysError = ""; */ } } else { $noc_def = CSalePaySystemAction::GetParamValue("NOC"); $address1_def = CSalePaySystemAction::GetParamValue("ADDRESS"); $zipcode_def = CSalePaySystemAction::GetParamValue("ZIP"); ?>
Credit Card Number