Loqate 地址验证器 - 检测零信用加载?

Loqate Address Verifier - Detect Zero Credit OnLoad?

使用 Loqate Address Verification service,有没有一种方法可以通过编程方式检测您的帐户是否信用欠佳,以控制负载?类似于下面的代码(我刚刚编写的)?

var controlToReturn = new pca.Address(fields, avOptions);
control.listen("load", function () {
   if (this.accountCredit == 0) {
      //do stuff
   } 
});

可以处理在您使用后由控件抛出的零信用错误,但此时您已经显示了一个地址搜索字段,然后必须将其隐藏,并退回到标准地址表单布局(至少在我们的例子中)。

controlToReturn.listen("error", function (message) {    
   console.error(message);

   const ERROR_MESSAGE_ZERO_CREDIT = "Account out of credit";

   if (message != ERROR_MESSAGE_ZERO_CREDIT)
     alert("Error with address checker service: " + message);
}

似乎没有任何东西 in their docs,但我只是想知道是否有人知道控件上的任何属性/其他 API 调用允许这样做?

问题是调用它们 API 的 Loqate address.js 库没有返回整个错误对象,只是返回消息。

这可能不是 Loqate 认可的方法,但您可以通过引用 'error' 侦听器中的 pca.Address 来访问原始错误对象。

您应该可以这样做(在 'error' 侦听器函数中):

var errorCode = this.error.arguments[1].response.Items[0].Error;

'arguments[1]'是导致错误的pca.Request对象,'Items[0]'是错误对象,具有属性'Error'(代码),'Description'、'Cause' 和 'Resolution'.

请注意,此时 'errorCode' 是一个字符串,因此您可能还想对其使用 parseInt。

Loqate website 上提供了完整的错误代码列表。 'Account out of credit' 是“3”,但您可能希望以不同方式处理许多其他错误。