现在的位置: 首页 > 综合 > 正文

关于信用卡认证的过程——Authorize.net & EPayLink——payment gateway

2013年10月10日 ⁄ 综合 ⁄ 共 1605字 ⁄ 字号 评论关闭

        国内关于这方面资料很少,当时做的时候只好到一些英文网站上找了点资料,然后东问西问,也算是做出来了。系统运行到现在也有2个月了,还没发现bug,所以也想把一些方法写出来,给即将做这个的朋友一点帮助。看着中文摸索总比看全英文的要好的多吧。
        首先说说去Authorize.net和EPayLink认证信用卡过程的区别。最大的区别就在于Authorize.net认证的整个过程都在本地网站进行,也就是说,浏览者浏览的页面始终是当前他浏览的网站的,而没有跳转到Authorize.net去。而EPayLink正好相反,在输入信用卡信息的时候,页面会跳转到EPayLink去,认证通过再返回原来的站点。其他就没有什么明显区别了。
        对于这个区别,所以在编写程序上也有很多不同。去Authorize.net认证的程序较麻烦,因为不会跳转出去,所以用到了Curl函数库去一个指定的页面发送一些参数然后接受返回的参数,再根据这些返回的参数判断认证是否成功,并且可以得到成功与否的原因参数。具体的程序段如下:
                /* Initialize CURL */
                $AuthNetConn = curl_init();
               
                /* Set CURL Options */
                curl_setopt($AuthNetConn, CURLOPT_URL, $this->authNetURL);
                curl_setopt($AuthNetConn, CURLOPT_USERAGENT, $this->UserAgent);
                curl_setopt($AuthNetConn, CURLOPT_POST, 1);
                curl_setopt($AuthNetConn, CURLOPT_POSTFIELDS, $data);
                curl_setopt($AuthNetConn, CURLOPT_RETURNTRANSFER, 1);

                /* Execute CURL and return values */
                $return_string = curl_exec($AuthNetConn);

                if ($return_string == NULL) {
                    echo "Error:<br>";
                    echo curl_errno($AuthNetConn) . " - " . curl_error($AuthNetConn) . "<br>";
                }

                /* Close connection to Secure Server */
                curl_close ($AuthNetConn);
  
       
由于整个类和调用这个类的对象的行数太多,所以就不在此贴出,如果有需要的朋友可以留言,我可以发给你。
        EPayLink在程序上就要简单的多。只要把所有需要的参数名与值加在指定的连接后面,然后运行这个连接就会跳转到EPayLink去。关于这个过程,无论是用Form提交或者是重定向都可以做到。然后整个认证过程都在EPayLink完成,最后会根据是否成功返回到两个不同的页面,这两个页面都是根据先前程序跳转到EPayLink时所传的参数决定。
        关于这两个payment gateway所需要的参数及返回的参数的意义,因为很多就不一一列出了。这篇文章目的在与对过程作的大概描述,希望对要做相似项目的朋友有点帮助^^

抱歉!评论已关闭.