1

所以我正在为某人设置 DPS,但我的 xml_parse 中有一点错误。我正在使用来自 DPS (http://www.paymentexpress.com/Technical_Resources/Sample_code__-_PHP/PX_Post__-_cURL.aspx) 的示例代码,并且我已经对其进行了修改以与 PxPay 一起使用。我的问题是它吐出一个错误,我不知道代码在做什么,所以不知道出了什么问题

这是我的代码

function parse_xml($data){
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);     
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
    if ($xml_elem['type'] == 'open') {
        if (array_key_exists('attributes',$xml_elem)) {
            list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
        } else {
            $level[$xml_elem['level']] = $xml_elem['tag'];
        }
    }
    if ($xml_elem['type'] == 'complete') {
        $start_level = 1;
        $php_stmt = '$params';             
        while($start_level < $xml_elem['level']) {
            $php_stmt .= '[$level['.$start_level.']]';
            $start_level++;
        }
        $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
        eval($php_stmt);
    }
}
}

我在这一行收到“未定义的偏移量:1”错误

list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);

据我所知,它向我吐口水的内容如下

<Request valid="1">
    <URI>https://sec.paymentexpress.com/pxpay/pxpay.aspx?userid=Samplepxpayuser&amp;request=v5x4Ygc8SJlc3FLYva7pIp6QHqKiSatHN8sNMufz-NNrOGJXn0TJf5TOIVNwQRyNqPo9cPMUfXWJkxjAGGDGDzhkwFD6VxRD2KesUBcmD5ViwVnb4va16zLih9VmKlipvEelGaYsF3fCqudnaWV1abz6f8VNKJOhGeypImjWk9I9xV0-iZh860FPcOam_UVHe81aQ4C2LJKB_znLiWqALSeeOHskI9vxdPOfcsfO7xXOuSMVXsKK6kVX4eZjcODKS1JGKP97fhb4gI2vpR7KUwIGC7U9VkXkPQfAGyYuP1g8x0QR1kC6eNzov3-W48OyvQ1_Fabn8cc1deTrsk6s3bPj3dgrlcXUfnFvmSOemB4rs-ixPDwQcaEsZWQvUcIsaPXAWfQdgtC0dETayY_wVFN8yVmljpCZweiGyNhUHhYGIWLEGuP_Le1HwyHXc_fMaQOeqdZNrFBviCJyWZ2HKferSEwkyQqMmq</URI>
</Request>

有没有人有任何 DPS 经验或知道这里可能出了什么问题?

我得到了结果,但它仍然在我的错误报告中吐出这个错误

编辑

这不再需要。此代码现已过时

4

1 回答 1

0

替换eval($php_stmt);if (isset($xml_elem['value'])) { eval($php_stmt); }

于 2012-09-24T08:35:55.623 回答