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

[حل شده] integrate کردن پیام گستر با سایت reactjs&nodejs یا با wordpress

27 ارسال ها
5 کاربران
0 Likes
340 نمایش‌
0
شروع کننده موضوع

امکاناتی که برای integrate کردن پیام گستر با سایت reactjs&nodejs یا با wordpress می توانید ارایه دهید.

مثل:

ایجاد کاربر از سایت

صدور فاکتور

تیکتینگ برای پشتیبانی مشتریان

16 پاسخ
0

tnx

0
برای دانلود آخرین مستندات وب سرویس پیام گستر بر روی لینک ذیل کلیک کنید:
 
0

در متد saveperson در node این خطا را دارم:

] {
[0] Message: 'Object reference not set to an instance of an object.',
[0] Success: false,
[0] CrmId: '00000000-0000-0000-0000-000000000000'
[0] }

object ایجاد شده :

let requestArgs = {
username: username,
password: password,
PersonInfo: {
CrmObjectTypeCode: "person",
Email: user.email,
IdentityType: "حقیقی",
LastName: user.name,
IdentityCategory: "siteclients",
ContactPhone: [{ PhoneNumber: user.mobile }],
},
};
PG-Admin PG-Admin 14 فروردین 1400 9:16 ق.ظ

سلام
crmobjecttypecode
را مقدار دهی نکرده اید

0

آن را مقداردهی کردم

اما وقتی مشتری اضافه می شود اطلاعات ایمیل و شماره موبایل در پیام گستر قرار نمی گیرد..

اطلاعات ارسالی:

 

let requestArgs = {
username: username,
password: password,
person: {
CrmObjectTypeCode: "person",
Email: user.email,
IdentityType: "حقیقی",
LastName: user.name,
Subject: "عضویت در سایت",
// IdentityCategory: "siteclients",
Categories: { CategoryInfo: { Key: "siteclients" } },
PhoneContacts: {
ContactPhoneInfo: {
PhoneType: "موبایل",
PhoneNumber: user.mobile,
IsDefault: true,
},
},
},
};
PG-Admin PG-Admin 14 فروردین 1400 1:44 ب.ظ

سرویس ها تست شدند مشکلی نداشتند شما میتوانید سرویس را در wcftestclient یا wcfteststorm تست کنید

SaeidehNikpouyan 14 فروردین 1400 2:12 ب.ظ

نحوه نوشتن و عناوین درسته؟

omidi 24 فروردین 1400 2:47 ب.ظ

وقت بخیر. من تیکه کد داخل https://github.com/1stco/PayamGostarApiSamples/blob/master/Node.js/Person/SavePerson.js
را اجرا میکنم با user pass و آدرس هاست . اما درون callback دوم (داخل تابع method) ارور :‌
SavePersonResult: {
Message: 'type code person was not found',
Success: false,
CrmId: '00000000-0000-0000-0000-000000000000'
}میگیرم و CrmObjectTypeCode رو هم person ست کردم.

ممنون میشم راهنمایی کنین و همچنین بگین که چه مقادیری برای اون مجاز هست و هر کدوم به چه معنا هست

0

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

ولی برای ایمیل این طور پاس میدیم

<Emails attr0="StringArray" isNull="false">
<StringArray0 isNull="false" />
</Emails>

البته xml  نوشتم براتون 

0

ممنون میشم مدل json اش رو بفرمایید.

برای شماره تماس هم بقرمایید ممنون میشم

0

چون من از node استفاده می کنم

PG-Admin PG-Admin 16 فروردین 1400 3:00 ب.ظ

{
"MethodParameters": {
"username": "admin",
"password": "admin",
"identity": {
"@actualtype": "IdentityInfo",
"@basetype": "IdentityInfo",
"AddressContacts": {
"@attr0": "IdentityContactAddressArray",
"@isNull": "false",
"IdentityContactAddressArray0": {
"Address": {
"@isNull": "false"
},
"AddressType": {
"@isNull": "false"
},
"AreaCode": {
"@isNull": "false"
},
"City": {
"@isNull": "false"
},
"Country": {
"@isNull": "false"
},
"State": {
"@isNull": "false"
},
"ZipBox": {
"@isNull": "false"
},
"ZipCode": {
"@isNull": "false"
},
"Id": "00000000-0000-0000-0000-000000000000",
"IsDefault": "False",
"IsDeleted": "False"
}
},
"Balance": "0",
"Categories": {
"@attr0": "CategoryInfoArray",
"@isNull": "false",
"CategoryInfoArray0": {
"Id": "00000000-0000-0000-0000-000000000000",
"IdentityId": "00000000-0000-0000-0000-000000000000",
"IsDeleted": "False",
"Key": {
"@isNull": "false"
},
"Name": {
"@isNull": "false"
},
"Type": {
"@isNull": "false"
}
}
},
"Classification": {
"@isNull": "false"
},
"ColorName": {
"@isNull": "false"
},
"CustomerDate": "4/5/2021 2:56:15 PM",
"CustomerNumber": {
"@isNull": "false"
},
"DontEmail": "False",
"DontFax": "False",
"DontPhoneCall": "False",
"DontSms": "False",
"DontSocialSms": "False",
"Emails": {
"@attr0": "StringArray",
"@isNull": "false",
"StringArray0": {
"@isNull": "true"
}
},
"IdentityType": {
"@isNull": "false"
},
"NickName": {
"@isNull": "false"
},
"OtherUsername": {
"@isNull": "false"
},
"PhoneContacts": {
"@attr0": "IdentityContactPhoneArray",
"@isNull": "false",
"IdentityContactPhoneArray0": {
"ContinuedNumber": {
"@isNull": "false"
},
"Extension": {
"@isNull": "false"
},
"PhoneNumber": {
"@isNull": "false"
},
"PhoneType": {
"@isNull": "false"
},
"Id": "00000000-0000-0000-0000-000000000000",
"IsDefault": "False",
"IsDeleted": "False"
},
"IdentityContactPhoneArray1": {
"ContinuedNumber": {
"@isNull": "true"
},
"Extension": {
"@isNull": "true"
},
"PhoneNumber": {
"@isNull": "true"
},
"PhoneType": {
"@isNull": "true"
},
"Id": "00000000-0000-0000-0000-000000000000",
"IsDefault": "False",
"IsDeleted": "False"
}
},
"SaleUsername": {
"@isNull": "false"
},
"SourceType": {
"@isNull": "false"
},
"SupportUsername": {
"@isNull": "false"
},
"Website": {
"@isNull": "false"
},
"CreatDate": "4/5/2021 2:56:15 PM",
"CrmId": "d3665819-b1aa-42cc-a260-82e2a9b2a0f8",
"CrmObjectTypeCode": {
"@isNull": "false"
},
"CrmObjectTypeId": "8a1bfff6-ad79-4736-b23f-c9a0c241c34b",
"CrmObjectTypeIndex": "0",
"CrmObjectTypeName": {
"@isNull": "false"
},
"ExtendedProperties": {
"@attr0": "BaseCrmObjectExtendedPropertyInfoArray",
"@isNull": "false",
"BaseCrmObjectExtendedPropertyInfoArray0": {
"Name": {
"@isNull": "false"
},
"UserKey": {
"@isNull": "false"
},
"Value": {
"@isNull": "false"
}
}
},
"ModifyDate": "4/5/2021 2:56:15 PM",
"ParentCrmObjectId": "3ec7f9c1-5f0d-4ee1-b26d-6fa47b0611e7",
"ProcessStateIndex": "0",
"RefId": {
"@isNull": "false"
},
"Stage": {
"@isNull": "false"
},
"StageId": "4d04d6c2-650f-409a-a094-a124b581eb69",
"Tags": {
"@attr0": "StringArray",
"@isNull": "false",
"StringArray0": {
"@isNull": "false"
}
}
}
}
}

0

مقادیر رو با چه property باید بنویسم تو object

 

SaeidehNikpouyan 16 فروردین 1400 4:21 ب.ظ
این نوشته در 4 سال قبل توسط SaeidehNikpouyan اصلاح شد

router.get(
"/createCustomer",
passport.authenticate("jwt", {
session: false,
}),
(req, res) => {

User.findById(req.user._id).then((user) => {

// Replace keyword to your CRM host address.
let url = "http://:8000/Services/API/IPerson.svc?wsdl";
let requestArgs = {
username: username,
password: password,
person: {
CrmObjectTypeCode: "person",
Emails: user.email,
IdentityType: "حقیقی",
LastName: user.name,
Subject: "عضویت در سایت",
Categories: { CategoryInfo: { Key: "siteclients" } },
PhoneContacts: {
ContactPhoneInfo: {
PhoneType: "موبایل",
PhoneNumber: user.mobile,
IsDefault: true,
},
},
},
};
let options = {};
soap.createClient(url, options, async function (err, client) {
var method = client["SavePerson"];
// console.log(client);
await method(requestArgs, function (err, result, envelope, soapHeader) {
if (result.SavePersonResult.Success) {
console.log(result);
user.CrmId = result.SavePersonResult.CrmId;
User.findByIdAndUpdate(
user._id,
user,
{ upsert: true },
function (err, doc) {
if (err) return res.send(500, { error: err });
return res.send("Succesfully saved.");
},
);
}
});
});
});
},
);

PG-Admin PG-Admin 16 فروردین 1400 4:42 ب.ظ

دقیقا با همین property هایی که تو فایل json براتون فرستادم

0

من با توجه به تملیت شما اصلاح کردم.

اما نمایش نمیده سمت پیام گستر

let requestArgs = {
username: username,
password: password,
person: {
CrmObjectTypeCode: "person",
Emails: { String: user.email },
IdentityType: "حقیقی",
LastName: user.name,
Subject: "عضویت در سایت",
Categories: { CategoryInfo: { Key: "siteclients" } },
PhoneContacts: {
IdentityContactPhone: {
PhoneNumber: user.mobile,
PhoneType: "موبایل",
IsDefault: true,
},
},
},
};
let options = {};
soap.createClient(url, options, async function (err, client) {
var method = client["SavePerson"];
// console.log(client);
await method(requestArgs, function (err, result, envelope, soapHeader) {
if (result.SavePersonResult.Success) {
console.log(result);
 
PG-Admin PG-Admin 16 فروردین 1400 5:05 ب.ظ

من نهایتا میتونستم کد json در اختیارتون قرار بدم
پیش نهادم اینه که شما ابتدا یک بار با ابزار های تست وب سرویس مثل wcftestclient یا wcfteststorm از صحت سرویس ها و دیتا های ورودی مطمعا شین

0

متاسفانه این ابزار برای مک نیست

 

PG-Admin PG-Admin 17 فروردین 1400 9:01 ق.ظ

شما دقیقا از این نمونه کد استفاده کنید
var soap = require('strong-soap').soap;

// Enter the field with the username and password that has the necessary permission to find the person.
var username = 'admin';
var password = 'admin';

// Replace keyword to your CRM host address.
var url = 'http(s):///Services/API/IPerson.svc?wsdl';

var requestArgs = {
"username": username,
"password": password,
person: {
FirstName: "node",
LastName: "node",
CrmObjectTypeCode: "crmCode",
CrmObjectTypeIndex: "24",
IdentityType: "حقیقی",
'Categories': { 'CategoryInfo': { 'Key': "kpvc" } },
'PhoneContacts':{
'IdentityContactPhone':{
'PhoneNumber':"09120000009",
'PhoneType':"موبایل",
'IsDefault':true
}
}
}
};

var options = {};

soap.createClient(url, options, function (err, client) {

var method = client['SavePerson'];

method(requestArgs, function (err, result, envelope, soapHeader) {
res.json(result);
});
});

SaeidehNikpouyan 17 فروردین 1400 12:02 ق.ظ

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

PG-Admin PG-Admin 17 فروردین 1400 3:25 ب.ظ

پس تنها راهی که واقعا باقی میمونه اینه که تو یه سیستم ویندوزی با ابزار های تست وب سرویس که قبلا گفتم خدممتوتن سرویس هاتون رو یه تست کنید
چون من بررسی کردم سرویس ها دارن درست عمل میکنند

0

حالت صحیح برای node :

let requestArgs = {
username: username,
password: password,
person: {
// FirstName: user.name,
LastName: user.name,
CrmObjectTypeCode: "person",
IdentityType: "حقیقی",
Categories: { CategoryInfo: { Key: "siteclients" } },
PhoneContacts: {
IdentityContactPhone: {
PhoneNumber: user.mobile,
PhoneType: "موبایل",
IsDefault: true,
},
},
Emails: { string: [user.email] },
Subject: "عضویت در سایت",
},
};
0

.

0

.

0

.

صفحه 1 / 2
اشتراک:
پیمایش به بالا