Results matching “10”

CheckByNet - Hogenmiller Family

/*

echeck.class, Copyright 2004 John Hogenmiller john@hsource.net
http://h.hsource.net/

This is an api to interface with ChecksByNet (http://www.checksbynet.com/), provided
by CrossCheck, Inc. This program is in no way (currently) endorsed by Crosscheck, Inc., nor is the author in any way affiliated with CrossCheck, Inc.

Distribution:
This program is released under the GNU Lesser General Public License.
(http://www.opensource.org/licenses/lgpl-license.php)

CONFIGURATION:
Go to the function post_echeck and change the $payto and $paytoid variables
to match what you have with ChecksByNet. Alternatively, you could pass these
in from the parent script. If ChecksByNet ever changes their
submission url, you'll have to change the $url variable.

EXAMPLE:
Note that in a production environment, you wouldn't want to pass $_REQUEST in
to the post_echeck function as the end user would be able to change the amount,
payto, and paytoid at will. Ideally, you pull the cbn_ variables out of
$_REQUEST, do any regex checks you want to do on your side, and directly
set the amount from the server side.

post_echeck works by returning an array with the keys "approved" and "err".
$array['approved'] // If set, echeck was approved.
$array['err'] // Human readable text of all errors.
$array['RSPxxxx'] // Server generated error as key, human readable error as value.
Useful for parent scripts that want to do more with the error.

$ec = new echeck;
$result = $ec->post_echeck($_REQUEST);
if ($result[approved])
{ print "Echeck approved
\n"; }
else
{ print "Declined:
\n";
print $result[err];
}

VARIABLES:

Put all the variables into an array and pass that array to post_echeck.
Prefix all variables in the array with cbn_
Example:
$checkno = 123;
$check['cbn_checknbr'] = $checkno;
$result = $ec->post_echeck($check);

Checksbynet requires the following variables FROM THE CUSTOMER:

Check Number Value: checknbr Needs to be greater than 99 / 6 Max
Customer's First Name: writerfirst 15 Max (only for personal checks)
Customer's Last Name: writerlast 29 Max
Customer's Business Name: writername 50 Max (only for business checks)
Customer's Address: writeraddr Street address required / 50 Max
City: writercity 30 Max
State: writerst 2 characters required
Zip: writerzip 5 digits required
Bank Name: bankname 50 Max
Bank City: bankcity 30 Max
Bank State: bankst 2 characters required
Bank Zip: bankzip 5 digits required or can be blank
MICR: micr 80 Max
Customer's Driver's License: idnbr Do not include dashes or spaces / 40 Max
Driver's License State: idst 2 characters required
Customer's Phone Number: phone 10 digits required / 14 max
Customer's Email: email "@" and "." required / 50 Max

They also require these variables FROM THE MERCHANT:

Check Dollar Amount Value: checkamt Needs to be greater than $1.00/ 10 Max characters

These variables are required by the MERCHANT, but can be set in the post_echeck
function, and do not need to be passed in from the parent program.:
Pay to: payto Who the check is being made out to. 50 Max
Pay to id: paytoid Merchant id number

*/

class echeck
{

function post_echeck($check)
{

$url = 'https://cross.checksbynet.com/response.asp';

if ($check[cbn_payto])
{ $payto = urlencode($check[cbn_payto]); }
else { $payto = urlencode("Valued CrossCheck Merchant"); }

if ($check[cbn_paytoid])
{ $paytoid = urlencode($check[cbn_paytoid]); }
else { $paytoid = "12345"; }

// For initial testing, you may want to NULL out the paytoid
$paytoid = 0;

$params =
"payto=$payto"
. "&checknbr=". urlencode($check['cbn_checknbr'])
. "&checkamt=". urlencode($check['cbn_checkamt'])
. "&writeraddr=". urlencode($check['cbn_writeraddr'])
. "&writercity=". urlencode($check['cbn_writercity'])
. "&writerst=". urlencode($check['cbn_writerst'])
. "&writerzip=". urlencode($check['cbn_writerzip'])
. "&bankname=". urlencode($check['cbn_bankname'])
. "&bankcity=". urlencode($check['cbn_bankcity'])
. "&bankst=". urlencode($check['cbn_bankst'])
. "&micr=". urlencode($check['cbn_micr'])
. "&idnbr=". urlencode($check['cbn_idnbr'])
. "&idst=". urlencode($check['cbn_idst'])
. "&phone=". urlencode($check['cbn_phone'])
. "&email=". urlencode($check['cbn_email']);

if ($check['cbn_bankzip']) { $params .= "&bankzip=". $check['cbn_bankzip']; }
if ($check['cbn_writername']) { $params .= "&writername=". $check['cbn_writername']; }
else { $params .= "&writerfirst=". $check['cbn_writerfirst'] . "&writerlast=". $check['cbn_writerlast']; }
if ($paytoid) { $params .= "&paytoid=". $paytoid; }
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
// curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$return=curl_exec($ch);
curl_close ($ch);

$goodresults = $this->quotesplit($return);

foreach ($goodresults as $key => $value)
{
$result[$value] = "ECHECK: Unknown error"; // All known return codes will replace this.
if ($value == 'RSP0051') { $result[err] .= "ECHECK: Configuration error: invalid payto/paytoid";
$result[$value] .= "ECHECK: Configuration error: invalid payto/paytoid"; }
if ($value == 'RSP1101') { $result[err] .= "ECHECK: Bad/blank check number
\n";
$result[$value] = "ECHECK: Bad/blank check number
\n"; }
if ($value == 'RSP1102') { $result[err] .= "ECHECK: Bad/blank check dollar amount
\n";
$result[$value] = "ECHECK: Bad/blank check dollar amount
\n"; }
if ($value == 'RSP1201') { $result[err] .= "ECHECK: Bad/blank entry for customer name
\n";
$result[$value] = "ECHECK: Bad/blank entry for customer name
\n"; }
if ($value == 'RSP1202') { $result[err] .= "ECHECK: Bad/blank address for customer $check[cbn_writeraddr]
\n";
$result[$value] = "ECHECK: Bad/blank address for customer $check[cbn_writeraddr]
\n"; }
if ($value == 'RSP1203') { $result[err] .= "ECHECK: Bad/blank city for customer
\n";
$result[$value] = "ECHECK: Bad/blank city for customer
\n"; }
if ($value == 'RSP1204') { $result[err] .= "ECHECK: Bad/blank state for customer
\n";
$result[$value] = "ECHECK: Bad/blank state for customer
\n"; }
if ($value == 'RSP1205') { $result[err] .= "ECHECK: Bad/blank zip code for customer
\n";
$result[$value] = "ECHECK: Bad/blank zip code for customer
\n"; }
if ($value == 'RSP1301') { $result[err] .= "ECHECK: Bad/blank bank name
\n";
$result[$value] = "ECHECK: Bad/blank bank name
\n"; }
if ($value == 'RSP1302') { $result[err] .= "ECHECK: Bad/blank city for bank
\n";
$result[$value] = "ECHECK: Bad/blank city for bank
\n"; }
if ($value == 'RSP1303') { $result[err] .= "ECHECK: Bad/blank state for bank
\n";
$result[$value] = "ECHECK: Bad/blank state for bank
\n"; }
if ($value == 'RSP1304') { $result[err] .= "ECHECK: Bad/blank zip code for bank
\n";
$result[$value] = "ECHECK: Bad/blank zip code for bank
\n"; }
if ($value == 'RSP1311') { $result[err] .= "ECHECK: Bad/blank account number
\n";
$result[$value] = "ECHECK: Bad/blank account number
\n"; }
if ($value == 'RSP1312') { $result[err] .= "ECHECK: Bad/blank routing number
\n";
$result[$value] = "ECHECK: Bad/blank routing number
\n"; }
if ($value == 'RSP1313') { $result[err] .= "ECHECK: Bad/blank micr number
\n";
$result[$value] = "ECHECK: Bad/blank micr number
\n"; }
if ($value == 'RSP1401') { $result[err] .= "ECHECK: Bad/blank driver's license number
\n";
$result[$value] = "ECHECK: Bad/blank driver's license number
\n"; }
if ($value == 'RSP1402') { $result[err] .= "ECHECK: Bad/blank state for driver's license
\n";
$result[$value] = "ECHECK: Bad/blank state for driver's license
\n"; }
if ($value == 'RSP1501') { $result[err] .= "ECHECK: Bad/blank phone number for customer
\n";
$result[$value] = "ECHECK: Bad/blank phone number for customer
\n"; }
if ($value == 'RSP1502') { $result[err] .= "ECHECK: Bad/blank email address for customer
\n";
$result[$value] = "ECHECK: Bad/blank email address for customer
\n"; }
if ($value == 'RSP0000') { $result[approved] = 1; $result[err] = 0; }
if ($value == 'RSP0001') { $result[approved] = 0; $result[err] .= "ECHECK: Declined
\n";
$result[$value] = "ECHECK: ECHECK: Declined
\n"; }
if ($value == 'RSP0020') { $result[err] .= "ECHECK: Check duplication error. We have approved this same check number from the same account in recent history.
\n";
$result[$value] = "ECHECK: Check duplication error. We have approved this same check number from the same account in recent history.
\n"; }
if ($value == 'RSP9999') { $result[err] .= "ECHECK: Unable to process checks at this time
\n";
$result[$value] = "ECHECK: Unable to process checks at this time
\n"; }
// Enable the below line for testing
if ($value == 'RSP0010') { $result[approved] = 1; $result[err] = 0;
$result[$value] = "ECHECK: Test completed.";}
}

if (!$result[err] && !$result[approved]) { $result[err] .= "ECHECK: Undefined error, not approved"; }
return($result);
} #end function post_echeck

function quotesplit($s)
{
$r = Array();
$p = 0;
$l = strlen($s);
while ($p < $l) {
while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)) $p++;
if ($s[$p] == '"') {
$p++;
$q = $p;
while (($p < $l) && ($s[$p] != '"')) {
if ($s[$p] == '\\') { $p+=2; continue; }
$p++;
}
$r[] = stripslashes(substr($s, $q, $p-$q));
$p++;
while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)) $p++;
$p++;
} else if ($s[$p] == "'") {
$p++;
$q = $p;
while (($p < $l) && ($s[$p] != "'")) {
if ($s[$p] == '\\') { $p+=2; continue; }
$p++;
}
$r[] = stripslashes(substr($s, $q, $p-$q));
$p++;
while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)) $p++;
$p++;
} else {
$q = $p;
while (($p < $l) && (strpos(",;",$s[$p]) === false)) {
$p++;
}
$r[] = stripslashes(trim(substr($s, $q, $p-$q)));
while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)) $p++;
$p++;
}
}
return $r;
} # end function quotesplit

} # end class echeck

?>

126 - Hogenmiller Family

Scan the cafeteria for some good seating.

Found a spot by the cheerleaders eating.

The quarterback asked me if I'd like a beating.

I said that's one thing... I won't be needing.

And since I am so smart and cunning... I took off down the next hall running.

Relient K rocks




So I took a look at my phone bill today. The total came to $179.12, which is slightly more than I'm used to paying (~$54). Intrigued I check out page 6 where I find two charges from ESBI which stands for Enhanced Services Billing Inc. They were billing on behalf of WebXites and had two charges of 49.95 each, for a total of $99.90. On top of this was a federal tax of $3.00 along with a state tax of %5.99 which (for those of you that are too lazy to use a calculator) comes to $108.89. "Aha" you say "that explains everything." Not quite. I've never heard of esbi or webxites, and I have no clue why I am being charged a "webxites gold mo fee". They provided the number 1-800-300-3724 for me to call, but surprisingly, they are closed. Also, on page 7 I have a charge from OAN billing on behalf of Nationwide Connect, Inc (which is also closed today) for $6.25 in "Direct dial charge".


Sprint (my favorite local telco {think about that for a moment}) was open, and I did get these charges placed in dispute, meaning I don't have to pay them for 60 days, which further means that I have that many days to get the charging companies to credit my bill.


Also, I have (or am supposed to have) a plan with sprint long distance for $0.06/minute but was actually getting charged $0.27/minute. This was actually easily resolved by calling sprint long distance up and making them see the errors of their ways. They had record of my original plan request (because I had record of it) and were able to issue credit for the price difference and switch my lines over the new plan. By this time, I had spent well over an hour with the various factions of Sprint. However, I had also been doing research on the internet and found that Nationwide Connect, Inc was basically a company that charges people for collect calls as soon as they answer the phone, and for the length of time you are on the phone (with silence playing on their end). This allows your answering machine to take the call for you. Brilliant. So, it's back on the phone to Sprint to ask about anyway of blocking these 3rd party billing people. Well, there isn't, at least not in my area. It seems it takes a state law in order to prevent from being charged for these "services". I think that a telephone
customer should have the option to prevent the local telco from billing them on behalf of 3rd party vendors. Basically, this affects local telephone service, and having over $100 in charges on your local telephone bill for things that have nothing to do with telephone service has the potential of being very damaging. Telco's allow for blocking of 900# service, why not this third party billing? The only third party that should be allowed to bill me via my local telco should be my official long distance provider, which in this case is currently sprint long distance. Previously, it was MCI (which actually billed me seperately from my local telco). However, the difference is that your local telco KNOWS who your long distance provider is because they route your calls through them. Everyone else is most likely a slightly unscrupulous company, and I would rather not do business with them. If I want web hosting or site design, I would like my hosting provider/site designer bill me with a regular invoice, and I will pay it with a check or credit card. Just don't mess with my telephone.

125 - Hogenmiller Family

For anyone watching the news (as it relates to Iraq) recently, you may start to notice something. In previous months (ie, between August and now), you may have hear reports like "soldiers picked off by drive by shooters" or "car bomb kill 4 coalition forces." Well, my guys (I'm talking Marines here), went back into country this last month. The headlines now read "Marines are engaged in heavy fighting across the region" or "Marines get into firefight with rebels, destroy wall in the process." If you recall, when we were there the first time, we beat the enemy into submission on our way to Baghdad, in a massive display of "shock and awe". Then, we patrolled the streets as we waited for the other coalition forces to setup. When that was done, we showed them around and handed it over. Since then, things have fallen to pieces. Now, we're going back in and we're going to kick some serious ass. You're going to see a lot more of Marine instigated battles over the next few weeks, and a lot less opposition. We may not stop a 5,000 year old blood feud, but we can put down an uprising. The bad side of this is that we're seeing the Marine Corps being dragged into the role of being an occupational force, which isn't supposed to be our job. We are a first-strike force for "when it absolutely, positively, has to be destroyed overnight."



In other news, closer to home, I've shut down my business in preparation for my upcoming deployment in about two months time. I'm done with spending every waking minute working on one thing or another. I'm going to relax between now and then, and I will have a good time. I've met a few new people recently, there's Shelly who doesn't actually live too far from me and is pretty darn cool to talk to. A lot of people I meet are dull and uninteresting. Let's see. Also interesting is starburst, the surfer girl from Florida. Andie is pretty cool, currently working 3 jobs. And there was Katie (aka "Kitten"), but she got dissapointed when she said that I "don't look like my picture" as she compared one picture of me to another picture of me. Apparently, in one picture, I appear to be a buff Asian guy. She was dissapointed that I wasn't and I haven't really heard from her yet. Talking with other people, I discover I do have "an Asian thing" going on. So, I think that I should start telling people that I am, indeed, Asian, a refugee from the militaristic country of Myanmar and I could even go as far as making up a story about my journey to the us, how I joined the Marines so i could repay this country for the freedom it gave me. I could finish it up by creating an entire site devoted to my asian life, complete with those pics that portray me in an asian lite.



Oh, and I am now the owner of an '88 VW Fox. Next week I will be getting the lasik done, so I will get rid of the glasses. All in the name of self-improvement. Sometime between now and deployment in June, I need to acquire a laptop at a very cheap price (800+mhz, dvd-rom, and at least a 10GB hard drive) that I will setup as a dual-boot between linux and winxp pro. I will then load it up with all sorts of developemt and server software, and in between high-pitched firefights, I will attempt to create some programs in Iraq.



Well, that pretty much covers this update, I'm sure more will come (they always do).

108 - Hogenmiller Family

Some of you were expecting a different rant #108, and I'm sorry to dissapoint you. Stay tuned for rant #109 though. For those who have no clue what they're missing, let me tell you. A local fellow recently has been having trouble with his laptop's power adapter. I had bought him a new adapter (with his money mind you), and then he had problems with that one, so I replaced the new one. Months pass, and the new new one has problems. This time, he discovers that the connector inside the laptop is loose. So he tears the laptop apart in order to crazy glue the thing in place. Well, the plan was pretty good except a) the crazy glue didn't hold it in place, and b) he couldn't get the laptop back together again.


The laptop comes to me. Check it out here.

109 - Hogenmiller Family

The following rant was submitted by windex/theinx/theOracle/redinx at my request. When I first heard the story of the borrowed floppy drive, I couldn't believe it. However, strange as it seems, the following story is true. We just can't make stuff like this up.

So, Squegie asked me if I knew anyone who is into graphics design and could create a logo for one of his websites. I told him I knew of someone who was between jobs and looking for something interesting to do besides calculus homework, so I passed the word along.

That weekend I asked her if she had a chance to think about how she was going to design it, and she said she was done and ready to send it back, except for one small hitch...

Despite having almost the best computer you can build off the shelf, there is only one way to get files off the computer and onto another one, short of removing the hard drive and throwing it into another computer.

Note that it is "almost" the best computer.

There's no working CD burner.

I pitched the idea of buying a USB memory stick, but no current job = no spare money. I had left my memory stick at work over the weekend, so there went that idea.

There is a NIC installed, but no phone or Ethernet jacks in the room.

What about a floppy drive, you might ask?

The computer used to have one, until her boyfriend borrowed it for "a few days" to fix his co-worker's computer. They broke up a few days later, with him still having custody of "his" floppy drive.

So, the only possible solution is to take her computer downstairs and network it with mom's computer, and email the file to herself so she could then download the file from her email and copy it to a floppy.

Someday, kids 'round the world will learn of this story and use it as a convenient excuse in school. It's the digital equivalent of "my dog ate my homework". You heard it here first.

110 - Hogenmiller Family

For those of you who have been watching the space from rant 105 and are feeling a bit put out, let me put your fears to rest. The non-geek in this story is the friend in rant 109, while the geek in 105 is the ex-boyfriend in 109. The co-worker's computer in rant 109 is as of yet an unknown entity.

106 - Hogenmiller Family

See if you can catch the professionalism in this communication I received from one of my vendors.

If you are a "PRICEWATCH" customer, please take a second to give us your " FEEDBACK ". We need your advise to provide more good products and greater service as our goal.



Please note that I myself am quite guilty of many spelling errors, some are at the business level. Imagine a antire roll of address labels that start off with "Seviced by". I don't know if it's comforting or frightening to see the same errors from my vendors.

105 - Hogenmiller Family

Watch this space. I've been hearing about the breakup of a geek/non-geek relationship and the troubles it has caused the non-geek in dealing with her computer. I heard about about it because the non-geek girl has created a logo for me, and it is on this computer. More to come as this rant unfolds.

104 - Hogenmiller Family

I have found something worse than spam. When people spam using your email address, you get the bounced messages. What makes that even worse is when tons of people who have received spam from your email adress (but not necessarily you) get infected with a virus, your address is in their list. So, you will either a) get the spam victims' virus email, or b) the spam victim's computer will send messages from your email address and you will get the virus scan bounce backs alerting you that you had a virus or your message was rejected. There's nothing greater than receiving a message stating that the .pif file I sent contained a virus, or that I am possibly infected with mydoom.


Now, some of you may be thinking: this idiot is running an open relay or has a virus. I even wondered that myself. However, after checking through the headers on these messages, and never once seeing one of my ip addresses, or even an ip adderss belonging to my isp (which I used to work for, and know their ranges), I was able to put that question to rest.

107 - Hogenmiller Family

 Re:Six inch floppies? (Score:4, Funny)
by martinX (672498) on Thursday March 04, @05:44PM (#8469600)

When 3.5" floppies were introduced to South Africa, in order to distinguish them from the flexible and floppy 5.25" disks, they were called "stiffies" ... so the campaign was 'would you rather have a 5.25" floppy or a 3.5" stiffy".

  1 2 3 4 5 6 7