こんにちは、私はこの機能を得ました:
public static function consumeMessage($xml, $debug = 1) {
$xml = stripslashes(urldecode($xml));
$rq = OpenPayU::parseOpenPayUDocument($xml);
$msg = $rq['OpenPayU']['OrderDomainRequest'];
switch (key($msg)) {
case 'OrderNotifyRequest':
return OpenPayU_Order::consumeNotification($xml);
break;
case 'ShippingCostRetrieveRequest':
return OpenPayU_Order::consumeShippingCostRetrieveRequest($xml);
break;
default:
return key($smg);
break;
}
}
私はこのように呼んでいます:
$result = OpenPayU_Order::retrieve($result->sessionId);
そして、この方法でファイルに書き込みます:
write_to_file("debug.txt", "order details: \n\n " .
serialize($result->response) . "\n\n");
私が得た出力で:
a:1:{s:8:"OpenPayU";a:2:{s:14:"HeaderResponse";a:3:{s:10:"SenderName";s:8:"checkout";s:7 :"バージョン";s:3:"1.0";s:9:"アルゴリズム";s:3:"MD5";}s:19:"OrderDomainResponse";a:1:{s:21:"OrderRetrieveResponse" ;a:8:{s:5:"ResId";s:32:"28444ffd9de5489e08a32e6cd51274a5";s:6:"ステータス";a:1:{s:10:"ステータスコード";s:16:"OPENPAYU_SUCCESS" ;}s:13:"MerchantPosId";s:5:"37857";s:9:"SessionId";s:32:"55a6d45cc0fef40ce95e9c1321b19b13";s:14:"CustomerRecord";a:6:{s:10 :"CustomerId";s:8:"nyi3iw6v";s:5:"電子メール";s:28:"netprofile@netprofile.com.pl";s:5:"電話";s:15:"(+ 48) 786265656";s:9:"名";s:5:"ミエタ";s:8:"LastName";s:5:"mieta";s:8:"Language";s:2:"pl";}s:11:"OrderStatus";s:20:"ORDER_STATUS_PENDING";s:12 :"CurrencyCode";s:3:"PLN";s:7:"PayType";s:1:"t";}}}}
しかし、私はほとんどすべての値を分離する必要があります.f.ex: 'StatusCode' を取得してデータベースに保存します.正規表現なしで取得する方法はありますか?
$result->response['statuscode']; のように取得しようとしています。しかし、私は何も得ません