Неожиданная ошибка элемента оболочки SOAP wdsl
Я пытаюсь отправить запрос на WDSL с помощью узла-мыла клиента
вот мой код:
var url = 'https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl';
soap.createClient(url, function(err, client) {
var today = new Date();
var params = {
terminalId: "1926577",
userName: "test2",
userPassword: "test1",
orderId: receipt.recieptId + "",
amount: parseInt(receipt.overal_price) + "",
localDate: today.format('ymd'),
localTime: today.format('His'),
additionalData: "Customer No: 15220",
callBackUrl: "http://test.ir/pay/verify",
payerId: parseInt(receipt.user) + ""
};
console.log(params);
client.bpPayRequest(params, function(err, result) {
if (err) {
throw err;
}
console.log(result);
});
и эта ошибка вернулась из wsdl:
Ошибка: soap: Клиент: Обнаружен неожиданный элемент оболочки bpPayRequest.
Ожидаемый { http://interfaces.core.sw.bps.com/} bpPayRequest.
Кажется, что ns1 не добавляется в качестве префикса к
узел в запросе xml
Я обновил модуль до версии v0.13.0 и добавил следующее:
used this code :
var options = {
ignoredNamespaces: {
namespaces: [],
override: true
}
}
Все та же ошибка:(
ВРЕМЕННО ИСПРАВИТЬ добавьте это в строку 1496 файла wsdl.js node-soap:
name = 'ns1:'+name;
4 ответа
Использовать этот:
var options = {
overrideRootElement: {
namespace: 'ns1'
}
};
Работает на версии 0.16
Была такая же проблема с версией 0.14.0 узла-мыла.
Переход на 0.11.0 решил для меня.
Начиная с версии 0.16.0 предлагаемое решение сброса ignoredNamespaces
снова работает:
var options = {
ignoredNamespaces: {
namespaces: [],
override: true
}
}
В версии 0.16.0 вы должны изменить строку 1530:
WSDL.prototype.objectToDocumentXML = function(name, params, nsPrefix, nsURI, type) {
var args = {};
args["ns1:" + name] = params; // instead of args[name] = params;
...