thinkphp和支付宝确认发货接口的问题

浏览:2572 发布日期:2014/05/15 分类:求助交流 关键字: 支付宝
用tp做支付宝担保交易ok,在做确认发货的时候出现了特别诡异的事情,吧下过来的demo 放到网站根目录进行测试是没问题的,但是把里面的代码整合到tp却出现问题了。require_once("alipay.config.php");
require_once("lib/alipay_submit.class.php");

/**************************请求参数**************************/

        //支付宝交易号
        $trade_no = $_POST['trade_no'];
        //必填

        //物流公司名称
        $logistics_name = $_POST['transport'];
        //必填

        //物流发货单号

        $invoice_no = $_POST['tans_num'];
        //物流运输类型
        $transport_type = 'EXPRESS';


/************************************************************/

//构造要请求的参数数组,无需改动
$parameter = array(
        "service" => "send_goods_confirm_by_platform",
        "partner" => trim($alipay_config['partner']),
        "trade_no"    => $trade_no,
        "logistics_name"    => $logistics_name,
        "invoice_no"    => $invoice_no,
        "transport_type"    => $transport_type,
        "_input_charset"    => trim(strtolower($alipay_config['input_charset']))
);

//建立请求
$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestHttp($parameter);
//echo $html_text;
//解析XML
//注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
$doc = new DOMDocument();
$doc->loadXML($html_text);

//请在这里加上商户的业务逻辑程序代码

//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

//获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表

//解析XML
if( ! empty($doc->getElementsByTagName( "alipay" )->item(0)->nodeValue) ) {
    $alipay = $doc->getElementsByTagName( "alipay" )->item(0)->nodeValue;
    echo $alipay;
}
这是demo的代码
我整合到tp的代码public function tanshandle (){

        require_once(VENDOR_PATH."Send/alipay.config.php");
        require_once(VENDOR_PATH."Send/lib/alipay_submit.class.php");
        
        //支付宝交易号
        $trade_no = '2014051453448389';
        //必填

        //物流公司名称
        $logistics_name = '顺丰快递';
        //必填

        //物流发货单号

        $invoice_no = '158668528860';
        //物流运输类型
        $transport_type = 'EXPRESS';
        //三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)

        //构造要请求的参数数组,无需改动
        $parameter = array(
                "service" => "send_goods_confirm_by_platform",
                "partner" => trim($alipay_config['partner']),
                "trade_no"    => $trade_no,
                "logistics_name"    => $logistics_name,
                "invoice_no"    => $invoice_no,
                "transport_type"    => $transport_type,
                "_input_charset"    => trim(strtolower($alipay_config['input_charset']))
        );
        //建立请求
        $alipaySubmit = new AlipaySubmit($alipay_config);
        $html_text = $alipaySubmit->buildRequestHttp($parameter);

        //解析XML
        //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
        $doc = new DOMDocument();
        $doc->loadXML($html_text);
上面正常的有输出。到我整合的却没有输出了,检测过,$html_text 在支付宝给的demo里有值,自己的这个方法里面确实空的。var_dump false; 纠结了一个下午了.....
最佳答案
评论( 相关
后面还有条评论,点击查看>>