微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Loqate 地址验证器 - 检测零信用 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 的引用来访问原始错误对象。

您应该能够做到这一点(在“错误”侦听器函数中):

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

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

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

错误代码的完整列表可在 Loqate website 上找到。 “帐户余额不足”为“3”,但您可能希望以不同方式处理许多其他错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。