0

iOS から注文するために「cart_customer.addresses」magento API を呼び出すと、HTTP エラー 500 が発生しました

iOSから呼び出すと、なぜHTTP 500 Errorが発生したのかわかりません。以下は私のObjective-Cソースコードです:

// Create billing address dictionary
NSMutableDictionary *billingAddressDict = [[[NSMutableDictionary alloc] init] autorelease];

[billingAddressDict setObject:@"billing" forKey:@"mode"];
[billingAddressDict setObject:@"testFirstname" forKey:@"firstname"];
[billingAddressDict setObject:@"testLastname" forKey:@"lastname"];
[billingAddressDict setObject:@"testCompany" forKey:@"company"];
[billingAddressDict setObject:@"testStreet" forKey:@"street"];
[billingAddressDict setObject:@"testCity" forKey:@"city"];
[billingAddressDict setObject:@"testRegion" forKey:@"region"];
[billingAddressDict setObject:@"testPostcode" forKey:@"postcode"];
[billingAddressDict setObject:@"SG" forKey:@"country_id"];
[billingAddressDict setObject:@"0123456789" forKey:@"telephone"];
[billingAddressDict setObject:[NSNumber numberWithInt:0] forKey:@"is_default_shipping"];
[billingAddressDict setObject:[NSNumber numberWithInt:0] forKey:@"is_default_billing"];

// Create shipping address dictionary
NSMutableDictionary *shippingAddressDict = [[[NSMutableDictionary alloc] init] autorelease];

[shippingAddressDict setObject:@"shipping" forKey:@"mode"];
[shippingAddressDict setObject:@"testFirstname" forKey:@"firstname"];
[shippingAddressDict setObject:@"testLastname" forKey:@"lastname"];
[shippingAddressDict setObject:@"testCompany" forKey:@"company"];
[shippingAddressDict setObject:@"testStreet" forKey:@"street"];
[shippingAddressDict setObject:@"testCity" forKey:@"city"];
[shippingAddressDict setObject:@"testRegion" forKey:@"region"];
[shippingAddressDict setObject:@"testPostcode" forKey:@"postcode"];
[shippingAddressDict setObject:@"SG" forKey:@"country_id"];
[shippingAddressDict setObject:@"0123456789" forKey:@"telephone"];
[shippingAddressDict setObject:[NSNumber numberWithInt:0] forKey:@"is_default_shipping"];
[shippingAddressDict setObject:[NSNumber numberWithInt:0] forKey:@"is_default_billing"];
request = [[XMLRPCRequest alloc] initWithURL: url];

NSArray *addressArray = [NSArray arrayWithObjects:shippingAddressDict, billingAddressDict, nil];

params = [NSArray arrayWithObjects:[NSNumber numberWithInt:cartId], addressArray, nil];
[request setMethod:@"call" withParameters:[NSArray arrayWithObjects:sessionId, @"cart_customer.addresses", params, nil]];

response = [self getResponse:request];

これは getResponse 関数の定義です:

- (XMLRPCResponse *)getResponse: (XMLRPCRequest *)request {
    NSError *error = nil;
    XMLRPCResponse *response = [XMLRPCConnection sendSynchronousXMLRPCRequest:request error:&error];

    if (nil != error) {
        NSLog(@"error = %@", [error description]);
        return nil;
    }

    if (nil == response) {
        return nil;
    }

    if ([response isFault]) {
        NSLog(@"Fault with code: %d means: %@", [response.faultCode intValue], response.faultString);
        return nil;
    }

    return [[response retain] autorelease];
}

私はMagento 1.5.0.1を使用しています

重要な更新:

辞書から「電話」を削除しようとすると、サーバーは検証メッセージを返します: 電話番号を入力してください。しかし、もう一度「電話」を入れると、お見せしたようにエラーが発生します。電話番号のどこが悪いのか、シンガポールの番号 (8 桁) と米国の番号 (数字のみ、スペースなし、'-' なし) を使用してみましたが、まだエラーが残ります。とにかく、magento が提供する公式の例ではダミーの "0123456789" が使用されていて、それが機能するので、私にとっても機能するはずですよね?

4

0 に答える 0