带租车的猴子 - 融入第三方网站,

时间:2012-08-10 04:11:46

标签: php jquery

所以,

我经营一家汽车租赁公司,我想将我的服务整合到第三方网站 - 人们可以直接在第三方网站上租车。如何有效地将我的服务集成到第三方网站?我认为iframe可能是最好的方式或某种javascript调用...但我需要最好的方式来集成我的服务,以便第三方网站尽可能少编码。

我希望人们在第三方网站上查看一个方框,如果他们想要租车,然后弹出一个表格询问客户他们的付款细节,然后该信息被发送到我的网站,我的网站处理信息并确认付款。

所以基本上,我在想象,

  1. 人员点击第三方网站上的复选框
  2. 第三方网站将有关此人的信息发送到我的网站
  3. 我使用该信息发送回价格明细的付款方
  4. 人在第三方网站上提交付款信息
  5. 我的网站获取付款信息​​并处理信息
  6. 我的网站向第三方网站发回状态回复。
  7. 问题是,如果客户是重复客户,我希望第三方网站向我发送有关客户的识别信息,这将使我能够辨别出她是一个重复 - 从而在没有她必须的情况下向她收费将她的信用卡信息放在付款箱中。

4 个答案:

答案 0 :(得分:1)

在这种情况下,它可以更实惠,有时更高效地构建与主要产品托管在同一服务上的产品的白标版本。这样所有的功能基本上是相同的,除了你在别人的名字上打了一个别人的名字,并说它由你公司的某个地方供电。

我建议这样做的一个关键原因是网站到网站的交易留下了许多可能通过恶意手段绊倒的活动部分。

以PayPal为例,当你用paypal支付时,会发生什么?您单击第三方网站上的paypal按钮,它会将您重定向到paypal网站本身。你可以做类似的事情,你告诉你的第三方提交一份表格,就像他们在任何其他网站上一样,并且发布的数据很少,因为你希望它可以在你身边确认,所以它让你的门更加封闭防止有人改变价格或其他东西。无论如何,你把那些发布的数据通过你的过滤器运行,将它与你允许你的第三方做的任何产品进行比较,然后在你身边处理它。然后当一切都完成后,你转身并重定向回那里的网站和感谢页面。

只需要深思熟虑

答案 1 :(得分:1)

如果您要实施安全措施,以便黑客无法使用虚假订单阻止您的数据库使用共享密钥,您可以使用该密钥将发布的数据加密为哈希值,然后在您的身边进行比较。

例如

$data = "color=blue|type=mazda|days=3|clientID=john@doe.com|etc=somedata";
$secretkey = "213098snxlkds_ljlsk3545";
$hash = hash('sha256',$data.$secretkey);

echo '<form target="someiframe" target="http://www.domain.com/bla/die/bla">
<input type="hidden" value="'.$data.'" name="data">
<input type="hidden" value="'.$hash.'" name="hash">
<input type="submit" value="Order the car Now!">';

然后在您收到数据的一方,您使用此代码

$secretkey = "213098snxlkds_ljlsk3545";
if(hash('sha256',$_POST['data'].$secretkey) === $_POST['hash'])
    {
    $process = explode('|',$_POST['data']);
    foreach($process as $piece)
        {
        $vars = explode('=',$piece);
        $Data[$vars[0]] = $vars[1];
        }
    }

这样,如果只有您和您的零售商拥有哈希值,您可以随时验证零售商是否合法,而不是试图让您陷入困境的廉价商品。

答案 2 :(得分:0)

在第三方网站上提供服务意味着这些网站必须与您的应用/网站进行通信。最重要的是,您希望用户也能够在第三方网站上付款,因此您将来回发送敏感数据。出于这个原因,我建议你首先获得/整合SSL。

完成后,您需要设置自己的API。我知道这可能听起来像是一项艰巨的任务,但实际上并非如果您不需要太多数据和验证(返回错误代码和内容的负载)。

这是一个简单的例子:

假设我有一个人们可以登录/注册的网站。但我希望用户能够在第三方网站上注册我的网站(就像您希望用户从您的网站购买商品一样)。

我在这里做的是:

创建一个基本脚本,用于侦听第三方网站将调用的任何请求。我们称之为api.php

//so we listen for POST params to be sent. These params will have users details stored in them

//so first check if all required params were sent:
if ( !isset($_POST['firstName']) || !isset($_POST['lastName']) || !isset($_POST['email']) )
{

exit();//because some/all of the required data is missing, we're going to stop right here xD

}//end of required data missing

//so if we get to this point, we know that the correct params have arrived

//so now you can do your registration stuff

//validate data (check if email is correct, if its been used before, ect ect)

//throw the data in the DB

//and if you need to, return some JSON status code
echo json_encode(array('status'=>'OK'));

这就是一个API。非常基本但仍然是API。现在,您只需告诉第三方网站将其信息发布到"https://yousite.com/api.php",它将返回状态代码,并完成注册。

我知道这不是一个很好的例子,但我希望你能够明白这一点。

实际上,大多数网站都是这样做的。即使不使用第三方网站。当用户注册到网站时,他们的数据会发布到某个页面。所以我想你可以将数据发布到你的原始注册/购买/登录页面..

答案 3 :(得分:0)

有许多不同的方法可以解决这个问题,但我认为最简单的方法可能是拥有第三方集成商可以在其网站上使用的简单JavaScript API。您的JavaScript可以设置复选框(例如,附加到集成商指定的divform)并对其进行装配,以便当用户选中该框时,它会打开一个指向您网站的弹出窗口。然后,您可以在`popup中处理您的事务。

这与基本的Paypal集成工作方式相当,用户在其网站上抛出Paypal按钮,然后点击按钮时会打开一个直接指向Paypal网站的新窗口(因为作为一般规则,他们不能直接从第三方网站收集/接受付款或身份信息)并传递一些描述交易的参数(付款金额,收款人,项目详情等)。

因此,例如,第三方可能首先包含您的JavaScript文件,例如:

,从而与您的服务集成
<script type="text/javascript" src="http://carmonkey.com/api/v1/MonkeyCar.js" />

...然后他们可能会添加一些样板代码来将API连接到他们网站的所需部分:

<script type="text/javascript">
    var options = {"container": "#someDivId", "userFirstName": "John", 
                   "userLastName": "Smith", "rentalDate":"8/8/12", "duration":"7"};
    MonkeyCar.drive(options);
</script>

然后您的脚本需要使用这些选项并使用它们将复选框添加到目标容器元素,并配置复选框,以便当用户单击它时,弹出窗口将打开到您网站上的相应URL。所以你可以添加类似的东西:

<input type="checkbox" name="_monkeyCar" value="true" 
       onchange="if (this.checked) {MonkeyCar.open('http://carmonkey.com/reserve?fname=John&lname=smith&...');}" />  
Book a Rental Car

然后,一旦发生这种情况,用户可以正常完成他们的租车预订,因为弹出窗口正在与您的标准网站运行正常的浏览器会话。

如果您想获得幻想,您还可以添加反馈循环,以便在第三方页面上运行的JavaScript API可以获取有关事务状态的更新并检测事务何时完成/取消并更新托管状态页面。