0

エンデュランス ブロック ストレージの verifyOrder を呼び出すために使用した PHP コードがあり、正常に動作します。価格 ID を変更するだけで、Performance Block ストレージでも機能すると思っていたでしょう。しかし、それはそれほど単純ではないようです。SoftLayer から、次の価格 ID を使用していることがわかります: 40678、40688、40798 そこで、価格 ID リストを上記のパッケージ ID とともに 222 に置き換えました。しかし、次のようなエラーが発生します。

PHP Fatal error:  Uncaught exception 'Exception' with message 'There was an error querying the SoftLayer API: Invalid pr
ice Block Storage (Performance) (40678) provided on the order container.'

そして、私には理由がわかりません。SoftLayer でパフォーマンス ブロック ストレージの順序を確認するための有効なサンプルはありますか?

以下は、エンデュランス ストレージ用の基本的なコード フローです。

$priceIds = array (
        45064,
        45104,
        45074,
        45124,
        46156 
);

$orderPrices = array();
foreach ($priceIds as $priceId){
    $price = new stdClass();
    $price->id = $priceId;
    $orderPrices[] = $price;
}   

$osFormatType = new stdClass();
$osFormatType->id = 12;
$osFormatType->keyName = 'LINUX';

$orderTemplate = new stdClass();
$orderTemplate->location     = $location;
$orderTemplate->packageId    = $packageId;
$orderTemplate->osFormatType = $osFormatType;
$orderTemplate->complexType  = 'SoftLayer_Container_Product_Order_Network_Storage_Enterprise';
$orderTemplate->prices       = $orderPrices;
$orderTemplate->quantity     = 1;

$productOrderClient = SoftLayer_SoapClient::getClient
(
        'SoftLayer_Product_Order',
        null,
        $apiUsername,
        $apiKey
);

$my_template = new SoapVar($orderTemplate, SOAP_ENC_OBJECT, 'SoftLayer_Container_Product_Order_Network_Storage_Enterprise', 'http://api.service.softlayer.com/soap/v3/');

$result = $productOrderClient->verifyOrder($my_template);
4

1 に答える 1