آگاه‌سازی‌ها
پاک‌کردن همه

ایجاد یک فرم به وسیله وب سرویس

16 ارسال ها
4 کاربران
0 Likes
206 نمایش‌
0
شروع کننده موضوع

سلام من با استفاده از زبان 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);

Omid Nasri 3 خرداد 1399 9:25 ق.ظ

در سرویس فرم تابعی با عنوان SavePerson نداریم. لطفاً از سرویس ذخیره خود فرم استفاده کنید.

9 پاسخ
0
شروع کننده موضوع

کد را اشتباه اینجا نوشته بودممن از سرویسی saveform دارم استفاده میکنم و همچنان همین مشکل هست

0
شروع کننده موضوع

<?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);

?>

0
شروع کننده موضوع

خروجی اروری که برنامه بهم میده :

 

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
)

)

Omid Nasri 3 خرداد 1399 11:48 ق.ظ

ممکنه سرویس جستجو هویت رو جداگانه تست کنید. تابع فرم به درستی نوشته شده اما از صحت خروجی جستجو هویت اطمینان ندارم. لطفاً از طریق دیباگ کردن کدها تست کنید.

0
شروع کننده موضوع

خروجی متغیر crmid این هست :

e56692a6-0a6f-461c-a49e-5800fdf7648e

که اینو در آرایه identityID ست میکنم

 

0
شروع کننده موضوع

کل پارامتری هایی که دارم به سرویس saveform ارسال میکنم آی آیتم هست :

 

(
[userName] => admin
[password] => 123456
[CrmObjectTypeCode] => 1234
[Subject] => tttttteeeesssssss
[IdentityId] => Array
(
[Value] => e56692a6-0a6f-461c-a49e-5800fdf7648e
)

)

 

 

 

دقیقا همین آیتم هارا در نرم افزار wcftes استفاده میکنم و بدون مشکل فرم تکمیل میشود 

 

این نوشته در 4 سال قبل توسط meh.mn90 اصلاح شد
Omid Nasri 3 خرداد 1399 2:09 ب.ظ

سوالی که پیش میاد اینه، چرا مقدار ارسالی به فیلد IdentityId از نوع آرایه است؟ یک بار فرم را بدون در نظر گرفتن فیلد IdentityId ثبت کنید. به نظر میرسه مشکل از فیلد IdentityId است.

0
شروع کننده موضوع

به دلیل اینکه این فیلد داخلش یک متغیر دیگه ای داره به نا 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
)

)

 

Omid Nasri 3 خرداد 1399 3:23 ب.ظ

نمونه کد ذخیره فرم متاسفانه اکنون در دست نیست که بتون بدم، از صحت عملکرد وب سرویس شکی نیست چرا خود شما همچنین با WCFTestClient تست نموده‌اید. در این هفته سعی می‌کنم نمونه کدی آماده کنم و اینجا براتون قرار بدم.

0
شروع کننده موضوع

من همچنان منتظر نمونه کد هستم 

من فکر میکنم یک متغیری باید ارسال کنم که نمیکنم

شاید شما یک فیلدی را گفتید باید پر باشه ولی من دارم خالی ارسالش میکنم

ممنون میشم نمونه کد را برام بزارید .

 

0

در اینجا نمونه کدهای با زبان سی شارپ و پی اچ پی تهیه شده است. لطفاً مطالعه فرمایید.

امیر 6 مرداد 1400 5:34 ب.ظ

متاسفانه صفحه‌ی مقصد این لینک در دسترس نیست. و نمونه کدهای فرم در گیت‌هاب موجود نیست. اگه ممکنه به نمونه کد فرم بدین. ممنون

PG-Admin PG-Admin 9 مرداد 1400 12:55 ق.ظ

سلام
کلیه نمونه کد ها در این آدرس قرار دارند
https://github.com/1stco/PayamGostarApiSamples

امیر 4 شهریور 1400 10:30 ب.ظ

من توی گیت‌هاب نمونه کدی برای فرم به زبان پی‌اچ‌پی پیدا نکردم ممنون میشم لینک صفحه‌ی نمونه کدهای وب سرویس فرم را برایم ارسال فرمائید.

0

با سلام

ب ازای هر زبان یک نمونه بیشتر موجود نیست

شما با استفاده از داکیومنت  و اون فایل نمونه اقدام به پیاده سازی سرویس مورد نظر خودتون کنید

با تشکر

اشتراک:
پیمایش به بالا