امکاناتی که برای integrate کردن پیام گستر با سایت reactjs&nodejs یا با wordpress می توانید ارایه دهید.
مثل:
ایجاد کاربر از سایت
صدور فاکتور
تیکتینگ برای پشتیبانی مشتریان
tnx
در متد 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 ایجاد شده :
آن را مقداردهی کردم
اما وقتی مشتری اضافه می شود اطلاعات ایمیل و شماره موبایل در پیام گستر قرار نمی گیرد..
اطلاعات ارسالی:
سرویس ها تست شدند مشکلی نداشتند شما میتوانید سرویس را در wcftestclient یا wcfteststorm تست کنید
وقت بخیر. من تیکه کد داخل 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 ست کردم.
ممنون میشم راهنمایی کنین و همچنین بگین که چه مقادیری برای اون مجاز هست و هر کدوم به چه معنا هست
بنده نود کار نیستم
ولی برای ایمیل این طور پاس میدیم
<Emails attr0="StringArray" isNull="false">
<StringArray0 isNull="false" />
</Emails>
البته xml نوشتم براتون
ممنون میشم مدل json اش رو بفرمایید.
برای شماره تماس هم بقرمایید ممنون میشم
چون من از node استفاده می کنم
{
"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"
}
}
}
}
}
مقادیر رو با چه property باید بنویسم تو object
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.");
},
);
}
});
});
});
},
);
من با توجه به تملیت شما اصلاح کردم.
اما نمایش نمیده سمت پیام گستر
من نهایتا میتونستم کد json در اختیارتون قرار بدم
پیش نهادم اینه که شما ابتدا یک بار با ابزار های تست وب سرویس مثل wcftestclient یا wcfteststorm از صحت سرویس ها و دیتا های ورودی مطمعا شین
متاسفانه این ابزار برای مک نیست
شما دقیقا از این نمونه کد استفاده کنید
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);
});
});
من دقیقا از همین کد استفاده میکنم و کاربر در پیام گستر ایجاد میشود اما ایمیل و شماره تماس ذخیره نمی شود
پس تنها راهی که واقعا باقی میمونه اینه که تو یه سیستم ویندوزی با ابزار های تست وب سرویس که قبلا گفتم خدممتوتن سرویس هاتون رو یه تست کنید
چون من بررسی کردم سرویس ها دارن درست عمل میکنند
حالت صحیح برای node :
.
.
.