سلام من با استفاده از زبان PHP میخواهم یک فرو در پیام گستر ایجاد کنم و یک سری اطلاعات را پر کنم
قبل از اینکه شروع کنم به وسیله نرم افزار wcftestclient تست کردم و بدون مشکل فرم ایجاد شد .
ولی وقتی با phpاینکارو انجام میدم متاسفانه کلا نرم افزار کرش میکنه
کد های من به این صورت است
مشکل از کجا میتونه باشه ؟
$username = 'admin';
$password = '123456';
$url = 'http://192.168.10.12/services/api/IForm.svc?wsdl';
$soapClient = new SoapClient( $url );
$params2 = array(
'userName' => $username,
'password' => $password,
'formInfo' => array(
'CrmObjectTypeCode' => '1234',
'Subject' => 'tttttteeeessssssssssssssttttttttt',
'IdentityId' => array(
array(
'Value' => $crmID
)
),
),
);
$result = $soapClient->SavePerson($params2);
در سرویس فرم تابعی با عنوان SavePerson نداریم. لطفاً از سرویس ذخیره خود فرم استفاده کنید.
کد را اشتباه اینجا نوشته بودممن از سرویسی saveform دارم استفاده میکنم و همچنان همین مشکل هست
<?php
$CallerID = '09120693160';
if (strlen($CallerID) < 9) {
$CallerID = $CallerID;
}else{
$CallerID = substr($CallerID,-10);
}
$client = new SoapClient("http://192.168.10.12/Services/API/IIdentity.svc?wsdl");
$params = new stdClass();
$params->username = 'admin';
$params->password = '123456';
$params->phoneNumber = $CallerID;
$res = $client->FindIdentityByPhoneNumber($params);
$status_webservice=$res->FindIdentityByPhoneNumberResult->Success;
$crmID = $res->FindIdentityByPhoneNumberResult->IdentityInfo->CrmId;
$username = 'admin';
$password = '123456';
$url = 'http://192.168.10.12/services/api/IForm.svc?wsdl';
$soapClient = new SoapClient( $url );
$params2 = array(
'userName' => $username,
'password' => $password,
'CrmObjectTypeCode' => '1234',
'Subject' => 'tttttteeeesssssss',
'IdentityId' => array(
'Value' => $crmID
)
);
$result = $soapClient->SaveForm($params2);
print_r($result);
?>
خروجی اروری که برنامه بهم میده :
stdClass Object
(
[SaveFormResult] => stdClass Object
(
[Message] => System.NullReferenceException: Object reference not set to an instance of an object.
at GeneralCrmObjectConverter`3.Create(TInfo crmObjectInfo, Guid userId)
at Septa.PayamGostar.ServiceLayer.ServiceType.PGServiceTypes.Modules.CrmObjectService`3.Save(String userName, String password, TInfo crmObjectInfo)
[Success] =>
[CrmId] => 00000000-0000-0000-0000-000000000000
)
)
ممکنه سرویس جستجو هویت رو جداگانه تست کنید. تابع فرم به درستی نوشته شده اما از صحت خروجی جستجو هویت اطمینان ندارم. لطفاً از طریق دیباگ کردن کدها تست کنید.
خروجی متغیر crmid این هست :
e56692a6-0a6f-461c-a49e-5800fdf7648e
که اینو در آرایه identityID ست میکنم
کل پارامتری هایی که دارم به سرویس saveform ارسال میکنم آی آیتم هست :
(
[userName] => admin
[password] => 123456
[CrmObjectTypeCode] => 1234
[Subject] => tttttteeeesssssss
[IdentityId] => Array
(
[Value] => e56692a6-0a6f-461c-a49e-5800fdf7648e
)
)
دقیقا همین آیتم هارا در نرم افزار wcftes استفاده میکنم و بدون مشکل فرم تکمیل میشود
سوالی که پیش میاد اینه، چرا مقدار ارسالی به فیلد IdentityId از نوع آرایه است؟ یک بار فرم را بدون در نظر گرفتن فیلد IdentityId ثبت کنید. به نظر میرسه مشکل از فیلد IdentityId است.
به دلیل اینکه این فیلد داخلش یک متغیر دیگه ای داره به نا value
داخل wcftest هم باید اول تبدیلش کنیم به آرایه تا بتونیم داخلش چیزی بنویسیم
ولی باز هم بدون IdentityID ثبت کردم مجدد همون ارور را داد
(
[userName] => admin
[password] => 123456
[CrmObjectTypeCode] => 1234
[Subject] => tttttteeeesssssss
)
stdClass Object
(
[SaveFormResult] => stdClass Object
(
[Message] => System.NullReferenceException: Object reference not set to an instance of an object.
at GeneralCrmObjectConverter`3.Create(TInfo crmObjectInfo, Guid userId)
at Septa.PayamGostar.ServiceLayer.ServiceType.PGServiceTypes.Modules.CrmObjectService`3.Save(String userName, String password, TInfo crmObjectInfo)
[Success] =>
[CrmId] => 00000000-0000-0000-0000-000000000000
)
)
نمونه کد ذخیره فرم متاسفانه اکنون در دست نیست که بتون بدم، از صحت عملکرد وب سرویس شکی نیست چرا خود شما همچنین با WCFTestClient تست نمودهاید. در این هفته سعی میکنم نمونه کدی آماده کنم و اینجا براتون قرار بدم.
من همچنان منتظر نمونه کد هستم
من فکر میکنم یک متغیری باید ارسال کنم که نمیکنم
شاید شما یک فیلدی را گفتید باید پر باشه ولی من دارم خالی ارسالش میکنم
ممنون میشم نمونه کد را برام بزارید .
در اینجا نمونه کدهای با زبان سی شارپ و پی اچ پی تهیه شده است. لطفاً مطالعه فرمایید.
متاسفانه صفحهی مقصد این لینک در دسترس نیست. و نمونه کدهای فرم در گیتهاب موجود نیست. اگه ممکنه به نمونه کد فرم بدین. ممنون
سلام
کلیه نمونه کد ها در این آدرس قرار دارند
https://github.com/1stco/PayamGostarApiSamples
من توی گیتهاب نمونه کدی برای فرم به زبان پیاچپی پیدا نکردم ممنون میشم لینک صفحهی نمونه کدهای وب سرویس فرم را برایم ارسال فرمائید.
با سلام
ب ازای هر زبان یک نمونه بیشتر موجود نیست
شما با استفاده از داکیومنت و اون فایل نمونه اقدام به پیاده سازی سرویس مورد نظر خودتون کنید
با تشکر