1. 首页
  2. 网站建设

支付宝双功能接口部署和担保交易确认发货失败的问题。

前几天空的时候,章郎虫在自己的一个网站部署了支付宝双功能接口,使用支付宝提供的demo代码。在这里我简单说下部署过程和其中碰到的问题。

首先我在windows系统本地测试了支付功能,成功支付。

接下来测试服务器异步通知功能,因为“服务器异步通知页面文件”notify_url.php不能在本机电脑测试,所以我把代码文件上传到了服务器。服务器异步通知我主要想实现的功能主要是这些:如果对方使用担保交易付款成功后,服务器自动发货;如果支付宝通知交易成功(担保交易买家确认付款或者即时交易),自动更新对应账号在网站的相应功能。下面是我的自动发货代码,稍微把确认发货的代码修改了一下,不用demo中的手动提交form表单发货。


require_once("lib/alipay_submit.class.php");
$logistics_name = 'POST';
$transport_type = 'POST';
$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);
$doc = new DOMDocument();
$doc->loadXML($html_text);
if( ! empty($doc->getElementsByTagName( "alipay" )->item(0)->nodeValue) ) {
 $alipay = $doc->getElementsByTagName( "alipay" )->item(0)->nodeValue;
 echo $alipay;
}

我就在这里出现了问题,测试后发现自动发货功能不能实现。只能确认form表单确认发货的功能,提示错误“Warning:DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input in”。支付宝论坛官方解释是检查服务器是否开放解析远程XML解析对象的功能。首先检查确保环境是否安装了curl和ssl等基本环境,一切正常,还有windows本地测试form表单确认发货正常。然后确认发货中把$parameter变量换成常量,xml解析也没问题。最后发现原来是alipay.config.php配置文件证书路径错误。因为我的服务器是linux系统,默认配置文件证书路径为“$alipay_config[‘cacert’]    = getcwd().’\\cacert.pem’;”,这个在linux系统是识别不了的。发现问题后,我把文件证书路径修改为“$alipay_config[‘cacert’]    = getcwd().’/cacert.pem’;”,测试自动发货功能正常。

最后一步就是支付宝页面跳转同步通知页面return_url.php文件了,暂时做的比较简单,功能是支付成功后跳转到网站页面。

确认无误后上线,秀下地址http://www.nbhao.org/donate/,期待朋友们的支持。。。

各个参数意思详见支付宝接口官方文档。网址:https://b.alipay.com/order/techService.htm

评论列表(0条)

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code