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 に答える