gpt4 book ai didi

java - 安卓 : create customer in magento via SOAP API

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:36 25 4
gpt4 key购买 nike

我试图在 Android 应用程序中通过 SOAP API (customerCustomerCreate (SOAP V2)) 在 magento 中创建客户,但出现此错误:

SoapFault - faultcode: '100' faultstring: 'Customer email is required' faultactor: 'null' detail: null

我使用此代码设置电子邮件地址:

 request = new SoapObject(NAMESPACE, "customerCustomerCreate");
request.addProperty("sessionId", sessionId);

SoapObject value = new SoapObject(NAMESPACE, "associativeEntity");
value.addProperty("key", "in");
value.addProperty("value", "xxxxx@xxxxx.com");

SoapObject complexFilter = new SoapObject(NAMESPACE,
"complexFilter");
complexFilter.addProperty("key", "email");
complexFilter.addProperty("value", value);
SoapObject filterArray = new SoapObject(NAMESPACE,
"complexFilterArray");
filterArray.addProperty("item", complexFilter);

SoapObject filters = new SoapObject(NAMESPACE, "filters");
filters.addProperty("complex_filter", filterArray);

request.addProperty("filters", filters);

env.setOutputSoapObject(request);

androidHttpTransport.call("", env);
result = env.getResponse();

有谁知道我在这里做错了什么?谢谢

最佳答案

如果您在可以使用它之前没有得到答案..

public void CreateNewCustomer(String email, String firstname, String lastname, String password) {


try {
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
request = new SoapObject(NAMESPACE, "login");
request.addProperty("username", "+++++");
request.addProperty("apiKey", "+++++");
env.setOutputSoapObject(request);

public static HttpTransportSE androidHttpTransport = new HttpTransportSE(URL)
androidHttpTransport.call("", env);
session = env.getResponse();
sessionId = session.toString();

Log.d("sessionId", sessionId.toString());

Log.d("Create "," Creating......");
request = new SoapObject(NAMESPACE,"customerCustomerCreate");
request.addProperty("sessionId", sessionId);
// request.addProperty("product", product_id);

//-----use Kvm Serializable class to serialize the key value data-------

CreateCustomerKVMserialize createcustomerkvm = new CreateCustomerKVMserialize();

createcustomerkvm.Email = email;
createcustomerkvm.Firstname = firstname;
createcustomerkvm.Lastname = lastname;
createcustomerkvm.Password = password;

PropertyInfo pi = new PropertyInfo();
pi.setName("customerData");
pi.setValue(createcustomerkvm);
pi.setType(createcustomerkvm.getClass());
request.addProperty(pi);

env.setOutputSoapObject(request);
env.addMapping(NAMESPACE, "customerData",new CreateCustomerKVMserialize().getClass());

androidHttpTransport.call("", env);
Object customer_create = env.getResponse();
Log.d("mainactivity "," "+customer_create.toString());


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

--------CreateCustomerKVMserialize类------------

public class CreateCustomerKVMserialize implements KvmSerializable{

public String Email;
public String Firstname;
public String Lastname;
public String Password;
// public String Websiteid;
// public String Storeid;
// public String Groupid;

public CreateCustomerKVMserialize(){}

public CreateCustomerKVMserialize(String email, String firstname, String lastname,String password) {

Email = email;
Firstname = firstname;
Lastname = lastname;
Password = password;
}

@Override
public Object getProperty(int arg0) {
// TODO Auto-generated method stub
switch(arg0)
{
case 0:
return Email;
case 1:
return Firstname;
case 2:
return Lastname;
case 3:
return Password;

}

return null;

}

@Override
public int getPropertyCount() {
// TODO Auto-generated method stub
return 4;
}

@Override
public void getPropertyInfo(int index, Hashtable arg1, PropertyInfo info) {
// TODO Auto-generated method stub

switch(index)
{
case 0:
info.type = PropertyInfo.STRING_CLASS;
info.name = "email";
break;
case 1:
info.type = PropertyInfo.STRING_CLASS;
info.name = "firstname";
break;
case 2:
info.type = PropertyInfo.STRING_CLASS;
info.name = "lastname";
break;
case 3:
info.type = PropertyInfo.STRING_CLASS;
info.name = "password";
break;
default:break;
}
}

@Override
public void setProperty(int index, Object value) {
// TODO Auto-generated method stub

switch(index)
{
case 0:
Email = value.toString();
break;
case 1:
Firstname = value.toString();
break;
case 2:
Lastname = value.toString();
break;
case 3:
Password = value.toString();
break;

default:
break;
}
}

}

关于java - 安卓 : create customer in magento via SOAP API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20822839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com