Frage

I've got my script worked out to grab information from the CIM:

$content = 
  "<?xml version=\"1.0\" encoding=\"utf-8\"?>" .
  "<getCustomerProfileRequest xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\">" .
  merchantAuthenticationBlock().
  "<customerProfileId>$cid</customerProfileId>" .
  "</getCustomerProfileRequest>";

$response = send_xml_request($content);
$parsedresponse = parse_api_response($response);

So how, now, do I write the returned value to a variable?

I've tried:

$customerPaymentProfileId = $parsedresponse->customerPaymentProfileId;
$customerShippingAddressId = $parsedresponse->customerShippingAddressId;

But this returns the variables empty. I feel like I'm missing something simple.

War es hilfreich?

Lösung

To see the structure of $parsedresponse do either print_r($parsedresponse) or var_dump($parsedresponse). From there you can see how the array is structured and get your values from there.

FYI, the payment profiles are in an array so you will need to loop through them to get their values. Assuming parsedresponse is the root XML node you can get them like this:

foreach ($parsedresponse->profile->paymentProfiles as $profile)
{
    echo $profile->customerPaymentProfileId;
}

FYI, this is a sample array structure for this response (From the AuthnetXML Sample Code. I am the author of this library):

<?xml version="1.0" encoding="utf-8"?>
<getCustomerProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <profile>
    <merchantCustomerId>12345</merchantCustomerId>
    <email>user@example.com</email>
    <customerProfileId>5427896</customerProfileId>
    <paymentProfiles>
      <billTo>
        <firstName>John</firstName>
        <lastName>Smith</lastName>
        <address>123 Main Street</address>
        <city>Townsville</city>
        <state>NJ</state>
        <zip>12345</zip>
        <phoneNumber>800-555-1234</phoneNumber>
      </billTo>
      <customerPaymentProfileId>4796541</customerPaymentProfileId>
      <payment>
        <creditCard>
          <cardNumber>XXXX1111</cardNumber>
          <expirationDate>XXXX</expirationDate>
        </creditCard>
      </payment>
    </paymentProfiles>
    <paymentProfiles>
      <billTo>
        <firstName>John</firstName>
        <lastName>Doe</lastName>
        <company/>
        <address>123 Main St.</address>
        <city>Bellevue</city>
        <state>WA</state>
        <zip>98004</zip>
        <country>USA</country>
        <phoneNumber>800-555-1234</phoneNumber>
        <faxNumber>800-555-1234</faxNumber>
      </billTo>
      <customerPaymentProfileId>4796585</customerPaymentProfileId>
      <payment>
        <creditCard>
          <cardNumber>XXXX1111</cardNumber>
          <expirationDate>XXXX</expirationDate>
        </creditCard>
      </payment>
    </paymentProfiles>
    <shipToList>
      <firstName>John</firstName>
      <lastName>Smith</lastName>
      <address>123 Main Street</address>
      <city>Townsville</city>
      <state>NJ</state>
      <zip>12345</zip>
      <phoneNumber>800-555-1234</phoneNumber>
      <customerAddressId>4907537</customerAddressId>
    </shipToList>
    <shipToList>
      <firstName>John</firstName>
      <lastName>Doe</lastName>
      <company/>
      <address>123 Main St.</address>
      <city>Bellevue</city>
      <state>WA</state>
      <zip>98004</zip>
      <country>USA</country>
      <phoneNumber>800-555-1234</phoneNumber>
      <faxNumber>800-555-1234</faxNumber>
      <customerAddressId>4907591</customerAddressId>
    </shipToList>
  </profile>
</getCustomerProfileResponse>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top