Skip to content

Instantly share code, notes, and snippets.

@suin
Created April 15, 2019 03:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suin/d24904d636613f177d38aba7a07fc604 to your computer and use it in GitHub Desktop.
Save suin/d24904d636613f177d38aba7a07fc604 to your computer and use it in GitHub Desktop.
Yahoo API XML decoding
<?php
declare(strict_types=1);
use Symfony\Component\Serializer\Encoder\XmlEncoder;
require __DIR__ . '/../vendor/autoload.php';
$data = <<<EOF
<ResultSet totalResultsAvailable="1" totalResultsReturned="1" firstResultPosition="1">
<Result>
<Status>OK</Status>
<OrderInfo>
<OrderId>testseller-10000001</OrderId>
<ParentOrderId>testseller-10000001</ParentOrderId>
<DeviceType>3</DeviceType>
<IsRoyaltyFix>true</IsRoyaltyFix>
<IsAffiliate>false</IsAffiliate>
<Referer><![CDATA[http://xxx.yyy.zzz/index.html]]></Referer>
<Clink><![CDATA[バナー広告101111]]></Clink>
<NeedSnl>true</NeedSnl>
<NeedSnc>false</NeedSnc>
<OrderTime>20121221231350</OrderTime>
<IsActive>true</IsActive>
<IsRoyaltyFix>false</IsRoyaltyFix>
<RoyaltyFixTime></RoyaltyFixTime>
<OrderStatus>2</OrderStatus>
<StoreStatus>出荷待ち</StoreStatus>
<SendConfirmTime>20121221231357</SendConfirmTime>
<SendInputTime></SendInputTime>
<SendPayTime></SendPayTime>
<IsRatingB2S>false</IsRatingB2S>
<Pay>
<PayStatus>1</PayStatus>
<SettleStatus>0000</SettleStatus>
<PayMethod>card</PayMethod>
<PayMethodName><![CDATA[クレジットカード決済]]></PayMethodName>
<PayDate>20121222</PayDate>
<PayNotes><![CDATA[確認済み]]></PayNotes>
<SettleId>XXXXXXXXXXX</SettleId>
<CardBrand><![CDATA[VISA]]></CardBrand>
<CardNumberLast4>0003</CardNumberLast4>
<CardPayType>4</CardPayType>
<BankName></BankName>
<BankBranchName></BankBranchName>
<BankAccountNumber></BankAccountNumber>
<BankAccountName></BankAccountName>
<NeedBillSlip>true</NeedBillSlip>
<NeedBillSlip>true</NeedBillSlip>
<NeedDetailedSlip>true</NeedDetailedSlip>
<NeedReceipt>true</NeedReceipt>
<AgeConfirmField><![CDATA[私は20歳以上です]]></AgeConfirmField>
<AgeConfirmValue></AgeConfirmValue>
<AgeConfirmCheck>true</AgeConfirmCheck>
<BillFirstName><![CDATA[太郎]]></BillFirstName>
<BillFirstNameKana><![CDATA[タロウ]]></BillFirstNameKana>
<BillLastName><![CDATA[矢風]]></BillLastName>
<BillLastNameKana><![CDATA[ヤフー]]></BillLastNameKana>
<BillZipCode><![CDATA[111-2222]]></BillZipCode>
<BillPrefecture><![CDATA[東京都]]></BillPrefecture>
<BillPrefectureKana><![CDATA[トウキョウト]]></BillPrefectureKana>
<BillCity><![CDATA[墨田区]]></BillCity>
<BillCityKana><![CDATA[スミダク]]></BillCityKana>
<BillAddress1><![CDATA[石原9-99-999]]></BillAddress1>
<BillAddress1Kana><![CDATA[イシワラ9-99-999]]></BillAddress1Kana>
<BillAddress2><![CDATA[矢風マンション]]></BillAddress2>
<BillAddress2Kana><![CDATA[ヤフーマンション]]></BillAddress2Kana>
<BillPhoneNumber><![CDATA[012-3456-7890]]></BillPhoneNumber>
<BillEmgPhoneNumber><![CDATA[123-4567-8901]]></BillEmgPhoneNumber>
<BillMailAddress><![CDATA[testbuyer@yahoo.co.jp]]></BillMailAddress>
</Pay>
<Ship>
<ShipStatus>1</ShipStatus>
<ShipMethod>postage1</ShipMethod>
<ShipMethodName><![CDATA[ヤマト運輸]]></ShipMethodName>
<ShipRequestDate>20121225</ShipRequestDate>
<ShipRequestTime><![CDATA[11:00~12:00]]></ShipRequestTime>
<ShipNotes></ShipNotes>
<ShipCompanyCode>1001</ShipCompanyCode>
<ShipInvoiceNumber1></ShipInvoiceNumber1>
<ShipInvoiceNumber2></ShipInvoiceNumber2>
<ShipUrl></ShipUrl>
<ShipDate></ShipDate>
<NeedGiftWrap>true</NeedGiftWrap>
<GiftWrapType><![CDATA[リボン]]></GiftWrapType>
<GiftWrapMessage><![CDATA[おめでとう]]></GiftWrapMessage>
<NeedGiftWrapPaper>false</NeedGiftWrapPaper>
<GiftWrapPaperType></GiftWrapPaperType>
<GiftWrapName></GiftWrapName>
<Option1Type>text</Option1Type>
<Option1Field><![CDATA[お届け先の階数]]></Option1Field>
<Option1Value><![CDATA[4階]]></Option1Value>
<Option2Type>radio</Option2Type>
<Option2Field><![CDATA[エレベーターの有無]]></Option2Field>
<Option2Value><![CDATA[あり]]></Option2Value>
<ShipFirstName><![CDATA[太郎]]></ShipFirstName>
<ShipFirstNameKana><![CDATA[タロウ]]></ShipFirstNameKana>
<ShipLastName><![CDATA[矢風]]></ShipLastName>
<ShipLastNameKana><![CDATA[ヤフー]]></ShipLastNameKana>
<ShipZipCode><![CDATA[111-2222]]></ShipZipCode>
<ShipPrefecture><![CDATA[東京都]]></ShipPrefecture>
<ShipPrefectureKana><![CDATA[トウキョウト]]></ShipPrefectureKana>
<ShipCity><![CDATA[墨田区]]></ShipCity>
<ShipCityKana><![CDATA[スミダク]]></ShipCityKana>
<ShipAddress1><![CDATA[石原9-99-999]]></ShipAddress1>
<ShipAddress1Kana><![CDATA[イシワラ9-99-999]]></ShipAddress1Kana>
<ShipAddress2><![CDATA[矢風コーポ]]></ShipAddress2>
<ShipAddress2Kana><![CDATA[ヤフーコーポ]]></ShipAddress2Kana>
<ShipPhoneNumber><![CDATA[098-7654-3210]]></ShipPhoneNumber>
<ShipEmgPhoneNumber><![CDATA[987-6543-2109]]></ShipEmgPhoneNumber>
</Ship>
<Detail>
<PayCharge>320</PayCharge>
<ShipCharge>525</ShipCharge>
<GiftWrapCharge>100</GiftWrapCharge>
<Discount>500</Discount>
<TotalPrice>10500</TotalPrice>
<SettleAmount>10500</SettleAmount>
<UsePoint>0</UsePoint>
<TotalMallCouponDiscount>100</TotalMallCouponDiscount>
</Detail>
<Item>
<LineId>1</LineId>
<ItemId><![CDATA[item-n77]]></ItemId>
<Title><![CDATA[商品名1]]></Title>
<SubCode><![CDATA[4201]]></SubCode>
<ItemOption></ItemOption>
<UnitPrice>2700</UnitPrice>
<Quantity>2</Quantity>
<ReleaseDate></ReleaseDate>
<HaveReview>false</HaveReview>
<PointFspCode>1</PointFspCode>
<UnitGetPoint>25</UnitGetPoint>
</Item>
<Item>
<LineId>2</LineId>
<ItemId><![CDATA[item-p09]]></ItemId>
<Title><![CDATA[商品名2]]></Title>
<ItemOption></ItemOption>
<UnitPrice>100</UnitPrice>
<Quantity>1</Quantity>
<ReleaseDate></ReleaseDate>
<HaveReview>false</HaveReview>
<PointFspCode>1</PointFspCode>
<UnitGetPoint>0</UnitGetPoint>
</Item>
<Seller>
<SellerId>testseller</SellerId>
</Seller>
<Buyer>
<FspLicenseName>ランク外</FspLicenseName>
</Buyer>
</OrderInfo>
</Result>
</ResultSet>
EOF;
$encoder = new XmlEncoder();
print_r($encoder->decode($data, 'xml'));
/usr/local/opt/php@7.1/bin/php /Volumes/dev/php-playground/SymfonySerializer/deo.php
Array
(
[@totalResultsAvailable] => 1
[@totalResultsReturned] => 1
[@firstResultPosition] => 1
[Result] => Array
(
[Status] => OK
[OrderInfo] => Array
(
[OrderId] => testseller-10000001
[ParentOrderId] => testseller-10000001
[DeviceType] => 3
[IsRoyaltyFix] => Array
(
[0] => true
[1] => false
)
[IsAffiliate] => false
[Referer] => http://xxx.yyy.zzz/index.html
[Clink] => バナー広告101111
[NeedSnl] => true
[NeedSnc] => false
[OrderTime] => 20121221231350
[IsActive] => true
[RoyaltyFixTime] =>
[OrderStatus] => 2
[StoreStatus] => 出荷待ち
[SendConfirmTime] => 20121221231357
[SendInputTime] =>
[SendPayTime] =>
[IsRatingB2S] => false
[Pay] => Array
(
[PayStatus] => 1
[SettleStatus] => 0000
[PayMethod] => card
[PayMethodName] => クレジットカード決済
[PayDate] => 20121222
[PayNotes] => 確認済み
[SettleId] => XXXXXXXXXXX
[CardBrand] => VISA
[CardNumberLast4] => 0003
[CardPayType] => 4
[BankName] =>
[BankBranchName] =>
[BankAccountNumber] =>
[BankAccountName] =>
[NeedBillSlip] => Array
(
[0] => true
[1] => true
)
[NeedDetailedSlip] => true
[NeedReceipt] => true
[AgeConfirmField] => 私は20歳以上です
[AgeConfirmValue] =>
[AgeConfirmCheck] => true
[BillFirstName] => 太郎
[BillFirstNameKana] => タロウ
[BillLastName] => 矢風
[BillLastNameKana] => ヤフー
[BillZipCode] => 111-2222
[BillPrefecture] => 東京都
[BillPrefectureKana] => トウキョウト
[BillCity] => 墨田区
[BillCityKana] => スミダク
[BillAddress1] => 石原9-99-999
[BillAddress1Kana] => イシワラ9-99-999
[BillAddress2] => 矢風マンション
[BillAddress2Kana] => ヤフーマンション
[BillPhoneNumber] => 012-3456-7890
[BillEmgPhoneNumber] => 123-4567-8901
[BillMailAddress] => testbuyer@yahoo.co.jp
)
[Ship] => Array
(
[ShipStatus] => 1
[ShipMethod] => postage1
[ShipMethodName] => ヤマト運輸
[ShipRequestDate] => 20121225
[ShipRequestTime] => 11:00~12:00
[ShipNotes] =>
[ShipCompanyCode] => 1001
[ShipInvoiceNumber1] =>
[ShipInvoiceNumber2] =>
[ShipUrl] =>
[ShipDate] =>
[NeedGiftWrap] => true
[GiftWrapType] => リボン
[GiftWrapMessage] => おめでとう
[NeedGiftWrapPaper] => false
[GiftWrapPaperType] =>
[GiftWrapName] =>
[Option1Type] => text
[Option1Field] => お届け先の階数
[Option1Value] => 4階
[Option2Type] => radio
[Option2Field] => エレベーターの有無
[Option2Value] => あり
[ShipFirstName] => 太郎
[ShipFirstNameKana] => タロウ
[ShipLastName] => 矢風
[ShipLastNameKana] => ヤフー
[ShipZipCode] => 111-2222
[ShipPrefecture] => 東京都
[ShipPrefectureKana] => トウキョウト
[ShipCity] => 墨田区
[ShipCityKana] => スミダク
[ShipAddress1] => 石原9-99-999
[ShipAddress1Kana] => イシワラ9-99-999
[ShipAddress2] => 矢風コーポ
[ShipAddress2Kana] => ヤフーコーポ
[ShipPhoneNumber] => 098-7654-3210
[ShipEmgPhoneNumber] => 987-6543-2109
)
[Detail] => Array
(
[PayCharge] => 320
[ShipCharge] => 525
[GiftWrapCharge] => 100
[Discount] => 500
[TotalPrice] => 10500
[SettleAmount] => 10500
[UsePoint] => 0
[TotalMallCouponDiscount] => 100
)
[Item] => Array
(
[0] => Array
(
[LineId] => 1
[ItemId] => item-n77
[Title] => 商品名1
[SubCode] => 4201
[ItemOption] =>
[UnitPrice] => 2700
[Quantity] => 2
[ReleaseDate] =>
[HaveReview] => false
[PointFspCode] => 1
[UnitGetPoint] => 25
)
[1] => Array
(
[LineId] => 2
[ItemId] => item-p09
[Title] => 商品名2
[ItemOption] =>
[UnitPrice] => 100
[Quantity] => 1
[ReleaseDate] =>
[HaveReview] => false
[PointFspCode] => 1
[UnitGetPoint] => 0
)
)
[Seller] => Array
(
[SellerId] => testseller
)
[Buyer] => Array
(
[FspLicenseName] => ランク外
)
)
)
)
Process finished with exit code 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment