first data 支付接口 谁用过

疯人院主任 发布于 2012/10/24 17:15
阅读 508
收藏 0

@齐天大肾 你好,想跟你请教个问题:


你的first data 实现 教我

加载中
0
lanybass
lanybass

可以不编译他的SO。直接用他demo里面给的例子.

通过lphp调用,不用他给的扩展的话,就必须打开curl扩展。我就是把他DEMO里的代码般过来写了个class而已:


<?php
        
class Payment(){

    private $myorder;

    function __construct(){
    	$this->myorder["host"]       = "secure.linkpt.net";
        $this->myorder["port"]       = "1129";
        $this->myorder["keyfile"]    = dirname(__FILE__)."/payment/1001234567.pem";  #改成你的
        $this->myorder["configfile"] = "1001234567";        #改成你的
    }
	
    public function pay($cardnum, $expmonth, $expyear, $cvv, $totalfee, $order_id){
        include  dirname(__FILE__)."/payment/lphp.php";#改成你的
        $mylphp=new lphp;

        
        # form data
        $this->myorder["cardnumber"]    = $cardnum;
        $this->myorder["cardexpmonth"]  = $expmonth;
        $this->myorder["cardexpyear"]   = $expyear;
        $this->myorder["cvmindicator"]  = "provided";
        $this->myorder["cvmvalue"]      = $cvv;
        $this->myorder["chargetotal"]   = $totalfee;   #总金额
        $this->myorder["ordertype"]     = 'SALE';
        $this->myorder["oid"]           = $order_id;	#你系统里面订单的ID,不能重复

        #是否打印调试信息
        //$this->debugging = true;
        
        
        
        # 如果你编译了他给的扩展,就用这行
        //$result = $mylphp->process($this->myorder);       # use shared library model

        #如果没编译,就使用curl扩展调用,就用这行
        $result = $mylphp->curl_process($this->myorder);  # use curl methods


        if ($result["r_approved"] != "APPROVED")    #扣款失败
        {
            //TODO: insert a log
//            print "Status:  {$result['r_approved']}<br/>\n";
//            print "Error:  {$result['r_error']}<br/><br/>\n";
            return array(false, $result['r_error']);
        }
        else	#扣款成功
        {
            //你可以在这里实现充值的业务逻辑,那就把当前user以及其他会用到的参数也传进来, 
            //也可以只返回成功,在外面处理业务。我是在外面处理的。
        	
        	
            //TODO:insert a log
//            print "Status: $result[r_approved]<br/>\n";
//            print "Transaction Code: $result[r_code]<br><br/>\n";
            return array(true, $result['r_code']);
        }
    }
}

=============调用如下=============
$cardnum = $_POST['cardnum'];
....其他参数获取等

$lib_pay = new Payment();
$result = $lib_pay->pay($cardnum, $expmonth, $expyear, $cvv, $totalfee, $order_id);
if ($result[0] == true){
    //DO:给会员充值。	
}else{
    //DO: show_msg("充值失败,原因:{$result[1]}");
}

?>


0
lanybass
lanybass
后来搞定了,就是他官方那个api接口就可以。 只要接口返回approved就说明已经扣款成功了。
0
疯人院主任
疯人院主任

他那个接口不是还要安装他的php动态扩展吗?

分享下关键代码?

0
疯人院主任
疯人院主任
谢谢你的示例代码,可是当我初始化lphp 这个类时, 他进行了他那两个库检测,如果没有安装,就把我程序中止了。
0
疯人院主任
疯人院主任

引用来自“%%%%”的答案

可以不编译他的SO。直接用他demo里面给的例子.

通过lphp调用,不用他给的扩展的话,就必须打开curl扩展。我就是把他DEMO里的代码般过来写了个class而已:


<?php
        
class Payment(){

    private $myorder;

    function __construct(){
    	$this->myorder["host"]       = "secure.linkpt.net";
        $this->myorder["port"]       = "1129";
        $this->myorder["keyfile"]    = dirname(__FILE__)."/payment/1001234567.pem";  #改成你的
        $this->myorder["configfile"] = "1001234567";        #改成你的
    }
	
    public function pay($cardnum, $expmonth, $expyear, $cvv, $totalfee, $order_id){
        include  dirname(__FILE__)."/payment/lphp.php";#改成你的
        $mylphp=new lphp;

        
        # form data
        $this->myorder["cardnumber"]    = $cardnum;
        $this->myorder["cardexpmonth"]  = $expmonth;
        $this->myorder["cardexpyear"]   = $expyear;
        $this->myorder["cvmindicator"]  = "provided";
        $this->myorder["cvmvalue"]      = $cvv;
        $this->myorder["chargetotal"]   = $totalfee;   #总金额
        $this->myorder["ordertype"]     = 'SALE';
        $this->myorder["oid"]           = $order_id;	#你系统里面订单的ID,不能重复

        #是否打印调试信息
        //$this->debugging = true;
        
        
        
        # 如果你编译了他给的扩展,就用这行
        //$result = $mylphp->process($this->myorder);       # use shared library model

        #如果没编译,就使用curl扩展调用,就用这行
        $result = $mylphp->curl_process($this->myorder);  # use curl methods


        if ($result["r_approved"] != "APPROVED")    #扣款失败
        {
            //TODO: insert a log
//            print "Status:  {$result['r_approved']}<br/>\n";
//            print "Error:  {$result['r_error']}<br/><br/>\n";
            return array(false, $result['r_error']);
        }
        else	#扣款成功
        {
            //你可以在这里实现充值的业务逻辑,那就把当前user以及其他会用到的参数也传进来, 
            //也可以只返回成功,在外面处理业务。我是在外面处理的。
        	
        	
            //TODO:insert a log
//            print "Status: $result[r_approved]<br/>\n";
//            print "Transaction Code: $result[r_code]<br><br/>\n";
            return array(true, $result['r_code']);
        }
    }
}

=============调用如下=============
$cardnum = $_POST['cardnum'];
....其他参数获取等

$lib_pay = new Payment();
$result = $lib_pay->pay($cardnum, $expmonth, $expyear, $cvv, $totalfee, $order_id);
if ($result[0] == true){
    //DO:给会员充值。	
}else{
    //DO: show_msg("充值失败,原因:{$result[1]}");
}

?>


很好 谢谢!
返回顶部
顶部