public function purchase_direct($id) { $subscriptions = $this->subscriptions; $subscription = $subscriptions[$id]; if (empty($subscription)) { return; } $sandbox = $this->anetarb_settings['mode'] == 'sandbox' ? true : false; $payment = new AuthnetAIM($sandbox); $creditcard = $_POST['cc_number']; $expiration = $_POST['cc_expmonth'] . $_POST['cc_expyear']; $cvv = $_POST['cc_cvc']; $total = $subscription['init_amount']; $invoice = null; $tax = null; $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $email = $_POST['email']; $payment->transaction($creditcard, $expiration, $total, $cvv, $invoice, $tax); $login = $this->anetarb_settings['acct.api_login_id']; $key = $this->anetarb_settings['acct.transaction_key']; $payment->setParameter("x_login", $login); $payment->setParameter("x_tran_key", $key); $payment->setParameter("x_first_name", $first_name); $payment->setParameter("x_last_name", $last_name); $payment->setParameter("x_email", $email); $subscription_name = $subscription['name']; $payment->process(); if ($payment->isApproved()) { // Instanciate our ARB class $arb = new AuthnetARB($sandbox, $login, $key); // Set recurring billing variables // Set recurring billing parameters $arb->setParameter('amount', $total); $arb->setParameter('cardNumber', $creditcard); $arb->setParameter('expirationDate', $expiration); $arb->setParameter('firstName', $first_name); $arb->setParameter('lastName', $last_name); //$arb->setParameter('address', $address); //$arb->setParameter('city', $city); //$arb->setParameter('state', $state); //$arb->setParameter('zip', $zip); $arb->setParameter('customerEmail', $email); $arb->setParameter('subscrName', $subscription_name); // Create the recurring billing subscription $arb->createAccount(); // If successful let's get the subscription ID if ($arb->isSuccessful()) { $arb_id = $arb->getSubscriberID(); $status = array('status' => 'active', 'id' => $arb_id); } else { //var_dump('Fail:' . $arb->getResponse()); } } else { //var_dump($payment->getResultResponseFull()); } $_POST['lastname'] = $last_name; $_POST['firstname'] = $first_name; $_POST['action'] = 'wpm_register'; $_POST['wpm_id'] = $subscription['sku']; $_POST['username'] = $email; $_POST['email'] = $email; $_POST['sctxnid'] = $status['id']; $_POST['password1'] = $_POST['password2'] = $this->wlm->PassGen(); $this->wlm->ShoppingCartRegistration(); }