Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
$OBvbwOKuqttQHhvVh='B83tobx3tlxq99KKEQdDvJbGAX33ipyfmByQfICjJMswBAIC3AD/1dK5UUrqk+9wDtiadQ..
Decoded Output download
abstract class AuthnetProcessARB extends AuthnetProcess {
// ARBCreateSubscriptionRequest
private $merchantAuthenticationName;
private $merchantAuthenticationTransactionKey;
private $refId;
private $subscriptionId;
// subscription
private $subscriptionName;
private $subscriptionAmount;
private $trialAmount;
// paymentSchedule
// interval
private $intervalLength;
private $intervalUnit;
// /interval
private $startDate;
private $totalOccurrences;
private $trialOccurrences;
// /paymentSchedule
// payment
// [creditCard]
private $cardNumber;
private $expirationDate;
private $cardCode;
// /creditCard
// [bankAccount]
private $accountType;
private $routingNumber;
private $accountNumber;
private $nameOnAccount;
private $echeckType;
private $bankName;
// /bankAccount
// /payment
// order
private $invoiceNumber;
private $description;
// /order
// customer
private $id;
private $email;
private $phoneNumber;
private $faxNumber;
// /customer
private $billTo;
private $shipTo;
// /subscription
// /ARBCreateSubscriptionRequest
// error messages are plublic to facilitate unittesting
public static $errorMessageMerchantAuthentication = "Merchant Authentication values not provided or incorrect";
public static $errorMessagePaymentMethod = "Payment method or details not provided or incorrect";
function __construct($name, $transactionKey) {
parent::__construct();
// ARB requests are XML
$this->setContentType('text/xml');
// build "inner" classes
$this->merchantAuthenticationName = $name;
$this->merchantAuthenticationTransactionKey = $transactionKey;
$this->billTo = new SubscriptionAddress();
$this->shipTo = new SubscriptionAddress();
}
public function execute() {
try {
if (!$this->validate()) throw new Exception(parent::$errorMessagecValidationFailure);
$transactionResponse = $this->cURLExecute();
// remove the xmlnx call due to error about 'not absolute'
$transactionResponse = str_replace('xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"', '', $transactionResponse); // stupidest hack in the history of this plugin...well, maybe not
// parse response into values
$this->transactionResponse = new SimpleXMLElement($transactionResponse);
// TODO magic work "Ok" here means transaction processed successfully. clarify and move this magic number
if ($this->getTransactionResponse()->messages->resultCode != "Ok") throw new Exception($this->getTransactionResponse()->messages->message->text);
} catch (Exception $exc) {
// TODO handle the error here and set errorMode, errorMessage
$this->setErrorMode(1);
$this->setErrorMessage($exc->getMessage());
}
}
public function getAccessUrl(){
return $this->getARBAccessUrl();
}
protected function validatePaymentMethod () {
$valid = true;
// check to see that we have a complete set of either creditCard or bankAccount
if ($this->getCardNumber()) {
if (!$this->getCardCode() || !$this->getExpirationDate()) $valid = false;
} else {
if (!$this->getAccountType()
|| !$this->getAccountNumber()
|| !$this->getRoutingNumber()
|| !$this->getNameOnAccount()
|| !$this->getEcheckType()
|| !$this->getBankName()) $valid = false;
}
return $valid;
}
protected function buildElementMerchantAuthentication ($parentElement) {
$merchantAuthentication = $parentElement->addChild("merchantAuthentication");
$merchantAuthentication->addChild("name", $this->getMerchantAuthenticationName());
$merchantAuthentication->addChild("transactionKey", $this->getMerchantAuthenticationTransactionKey());
}
protected function buildElementAddress ($parentElement, $addressObject, $addressName) {
$address = $parentElement->addChild($addressName);
$address->addChild("firstName", $addressObject->getFirstName());
$address->addChild("lastName", $addressObject->getLastName());
$address->addChild("company", $addressObject->getCompany());
$address->addChild("address", $addressObject->getAddress());
$address->addChild("city", $addressObject->getCity());
$address->addChild("state", $addressObject->getState());
$address->addChild("zip", $addressObject->getZip());
$address->addChild("country", $addressObject->getCountry());
}
protected function getMerchantAuthenticationName() {
return $this->merchantAuthenticationName;
}
protected function getMerchantAuthenticationTransactionKey() {
return $this->merchantAuthenticationTransactionKey;
}
public function getRefId() {
return $this->refId;
}
public function setRefId($refId) {
$this->refId = $refId;
}
public function getSubscriptionId() {
return $this->subscriptionId;
}
public function setSubscriptionId($subscriptionId) {
$this->subscriptionId = $subscriptionId;
}
public function getSubscriptionName() {
return $this->subscriptionName;
}
public function setSubscriptionName($subscriptionName) {
$this->subscriptionName = $subscriptionName;
}
public function getSubscriptionAmount() {
return $this->subscriptionAmount;
}
public function setSubscriptionAmount($subscriptionAmount) {
$this->subscriptionAmount = $subscriptionAmount;
}
public function getTrialAmount() {
return $this->trialAmount;
}
public function setTrialAmount($subscriptionTrialAmount) {
$this->trialAmount = $subscriptionTrialAmount;
}
public function getTrialOccurrences() {
return $this->trialOccurrences;
}
public function setTrialOccurrences($trialOccurrences) {
$this->trialOccurrences = $trialOccurrences;
}
public function getIntervalLength() {
return $this->intervalLength;
}
public function setIntervalLength($intervalLength) {
$this->intervalLength = $intervalLength;
}
public function getIntervalUnit() {
return $this->intervalUnit;
}
public function setIntervalUnit($intervalUnit) {
$this->intervalUnit = $intervalUnit;
}
public function getStartDate() {
return $this->startDate;
}
public function setStartDate($startDate) {
$this->startDate = $startDate;
}
public function setStartDateOffSet($offSet) {
$this->startDate = date('Y-m-d', strtotime("+" . $offSet. "days"));
}
public function setSpecificStartDate($specificDate) {
if (strtotime($specificDate) > strtotime(date("Y-m-d"))) $this->startDate = $specificDate;
}
public function getTotalOccurrences() {
return $this->totalOccurrences;
}
public function setTotalOccurrences($totalOccurrences) {
$this->totalOccurrences = $totalOccurrences;
}
public function getCardNumber() {
return $this->cardNumber;
}
public function setCardNumber($cardNumber) {
$this->cardNumber = $cardNumber;
}
public function getExpirationDate() {
return $this->expirationDate;
}
public function setExpirationDate($expirationDate) {
$this->expirationDate = $expirationDate;
}
public function getCardCode() {
return $this->cardCode;
}
public function setCardCode($cardCode) {
$this->cardCode = $cardCode;
}
public function getAccountType() {
return $this->accountType;
}
public function setAccountType($accountType) {
$this->accountType = $accountType;
}
public function getRoutingNumber() {
return $this->routingNumber;
}
public function setRoutingNumber($routingNumber) {
$this->routingNumber = $routingNumber;
}
public function getAccountNumber() {
return $this->accountNumber;
}
public function setAccountNumber($accountNumber) {
$this->accountNumber = $accountNumber;
}
public function getNameOnAccount() {
return $this->nameOnAccount;
}
public function setNameOnAccount($nameOnAccount) {
$this->nameOnAccount = $nameOnAccount;
}
public function getEcheckType() {
return $this->echeckType;
}
public function setEcheckType($echeckType) {
$this->echeckType = $echeckType;
}
public function getBankName() {
return $this->bankName;
}
public function setBankName($bankName) {
$this->bankName = $bankName;
}
public function getInvoiceNumber() {
return $this->invoiceNumber;
}
public function setInvoiceNumber($invoiceNumber) {
$this->invoiceNumber = $invoiceNumber;
}
public function getDescription() {
return $this->description;
}
public function setDescription($description) {
$this->description = $description;
}
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
}
public function getEmail() {
return $this->email;
}
public function setEmail($email) {
$this->email = $email;
}
public function getPhoneNumber() {
return $this->phoneNumber;
}
public function setPhoneNumber($phoneNumber) {
$this->phoneNumber = $phoneNumber;
}
public function getFaxNumber() {
return $this->faxNumber;
}
public function setFaxNumber($faxNumber) {
$this->faxNumber = $faxNumber;
}
public function getBillTo() {
return $this->billTo;
}
public function setBillTo($billTo) {
$this->billTo = $billTo;
}
public function getShipTo() {
return $this->shipTo;
}
public function setShipTo($shipTo) {
$this->shipTo = $shipTo;
}
}
// "inner" class(es)
class SubscriptionAddress {
private $firstName;
private $lastName;
private $company;
private $address;
private $city;
private $state;
private $zip;
private $country;
public function getFirstName() {
return $this->firstName;
}
public function setFirstName($firstName) {
$this->firstName = $firstName;
}
public function getLastName() {
return $this->lastName;
}
public function setLastName($lastName) {
$this->lastName = $lastName;
}
public function getCompany() {
return $this->company;
}
public function setCompany($company) {
$this->company = $company;
}
public function getAddress() {
return $this->address;
}
public function setAddress($address) {
$this->address = $address;
}
public function getCity() {
return $this->city;
}
public function setCity($city) {
$this->city = $city;
}
public function getState() {
return $this->state;
}
public function setState($state) {
$this->state = $state;
}
public function getZip() {
return $this->zip;
}
public function setZip($zip) {
$this->zip = $zip;
}
public function getCountry() {
return $this->country;
}
public function setCountry($country) {
$this->country = $country;
}
}
Did this file decode correctly?
Original Code
$OBvbwOKuqttQHhvVh='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';$qMcfaWcy_Dtulm=';))))uIiuUDggdhXBjoiOB$(ireegf(rqbprq_46rfno(rgnysavmt(ynir';$kibuOQDavEVRZAIER_=strrev($qMcfaWcy_Dtulm);$xOdojjhS_VmjGoQvmgPf=str_rot13($kibuOQDavEVRZAIER_);eval($xOdojjhS_VmjGoQvmgPf);
Function Calls
| strrev | 2 |
| gzinflate | 1 |
| str_rot13 | 1 |
| base64_decode | 1 |
Stats
| MD5 | f91b9bc498bb0d7e7ceaaadb1c36a573 |
| Eval Count | 2 |
| Decode Time | 143 ms |