// Look for constant contact opt-in if (CART66_PRO) { include CART66_PATH . "/pro/Cart66ConstantContactOptIn.php"; } if (CART66_PRO) { include CART66_PATH . "/pro/Cart66MailChimpOptIn.php"; } if ($itemTotal > 0 || $shipping > 0) { // Send shipping as the item amount if the item amount is $0.00 otherwise paypal will refuse the transaction if ($itemTotal == 0 && $shipping > 0) { $itemTotal = $shipping; $shipping = 0; } $pp->populatePayPalCartItems(); Cart66Common::log("Preparing DoExpressCheckout:\nToken: {$token}\nPayerID: {$payerId}\nItem Amount: {$itemTotal}\nShipping: {$shipping}\nTax: {$tax}"); $response = $pp->DoExpressCheckout($token, $payerId, $itemTotal, $shipping, $tax); } else { Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Bypassing DoExpressCheckout because item amount is not greater than zero: {$itemTotal}"); $response['ACK'] = 'SUCCESS'; // Forcing success since DoExpressCheckout wasn't called } $ack = strtoupper($response['ACK']); if ('SUCCESS' == $ack || 'SUCCESSWITHWARNING' == $ack) { // Wait to make sure the transaction is a success before creating the account if ($createAccount) { Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Creating account after successful PayPal transaction"); $account->save(); } // Create Recurring Payment Profile if a subscription has been sold $profileResponse = array('ACK' => 'SKIPPED'); if ($cartItem = Cart66Session::get('Cart66Cart')->getPayPalSubscriptionItem()) {