【问题标题】:Using the Consolibyte PHP SDK for QuickBooks, how do identify which client is sending a call from the Web Connector?使用适用于 QuickBooks 的 Consolibyte PHP SDK,如何识别哪个客户端正在从 Web 连接器发送调用?
【发布时间】:2020-02-11 16:52:37
【问题描述】:
我想为 Web 连接器使用单个服务器端点,但从那里连接到各个客户端数据库。
但是,当本地安装的 Web 连接器向 SOAP 服务器发送消息时,它似乎发送了三个连续的消息,其中只有 第三个 包含可以识别客户端的任何内容 - 用户名和密码。
我无法登录到正确的数据库,在这种情况下,这意味着创建一个正确的$dsn 字符串,而没有任何标识我应该登录到哪个数据库。
【问题讨论】:
标签:
php
desktop
quickbooks
intuit
【解决方案1】:
Web 连接器遵循 Intuit 定义的非常具体的协议,并且该协议不不支持识别谁在连接除了使用用户名。
这意味着对于最初的两个 HTTP 请求(clientVersion 和 serverVersion),您无法知道谁在连接。
如果您需要在身份验证之前识别谁正在连接,您需要做一些超出 Web 连接器协议本身提供的操作。这可以像添加到端点的查询字符串一样简单。例如:
https://your-website.com/web_connector.php?connecting_account=account_A
对比
https://your-website.com/web_connector.php?connecting_account=account_B
然后在你的代码中:
switch ($_GET['connecting_account'])
{
case ... (@todo connect to the correct database here)
}