如何使用Soap而不是Simple Form重定向到paypal

时间:2011-09-28 15:49:09

标签: php paypal

我有自己的购物车。 当客户点击提交订单时,我将用户重定向到paypal页面,客户将能够在该页面上支付订单。

这是我的表格

<form name="paypalform" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="invoice" value="<? echo $idInvoice; ?>">
<input type="hidden" name="business" value="aa_aaa_biz@hotmail.com">
<input type="hidden" name="notify_url" value="http://domaine.com/catalog/IPNReceip">


 <? 
    $cpt = 1;
        foreach($ordering as $k => $v)
        {
        ?>
            <input type="hidden" name="item_number_<? echo $cpt?>" value="<? echo$v->Product->id; ?>">
            <input type="hidden" name="item_name_<? echo $cpt?>" value="<? echo$v->Product->ProductNumber; ?>">
            <input type="hidden" name="quantity_<? echo $cpt?>" value="<? echo $v->Qty; ?>">
            <input type="hidden" name="amount_<? echo $cpt?>" value="<? echo $v->Price ?>"> 
            <?
            $cpt++;
        }
    ?>


<input type="hidden" name="currency_code" value="CAD">
<input type="hidden" name="tax_cart" value="<? echo $taxes;?>">
<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form> 

我想在后面的代码中做同样的事情。 有人有个主意。 我不想再使用表单重定向到paypal。


谢谢

2 个答案:

答案 0 :(得分:1)

您首先想要决定哪种产品最适合您。
您所描述的内容,使用Express Checkout最容易实现。

Express Checkout包含三个API调用:SetExpressCheckout,GetExpressCheckoutDetails和DoExpressCheckoutPayment。

  1. SetExpressCheckout准备事务并返回一个令牌。您必须从API响应中获取此令牌,并将其附加到您将重定向买方的网址。
  2. 一旦买方同意在PayPal页面上进行购买,他/她就会被重定向回您在SetExpressCheckout API调用的RETURNURL参数中指定的URL。
  3. 在此返回页面上,您需要调用GetExpressCheckoutDetails或(可选)查看$ _GET数组中的'PayerID'作为返回URL。
  4. 获得令牌和PayerID后;通过GetExpressCheckoutDetails或作为GET数据的一部分,调用DoExpressCheckoutPayment来完成付款。这可以在同一个退货页面上完成,也可以在买家点击退货页面上的“立即购买”按钮后执行。
  5. 另请参见一般Express Checkout page on X.comGetting Started with Express CheckoutExpress Checkout Integration Guide (PDF)

    SetExpressCheckout,GetExpressCheckoutDetails和DoExpressCheckoutPayment的一些示例代码也可以在https://www.x.com/developers/PayPal/documentation-tools/code-sample/78上找到。

    希望这有帮助!如果有什么不清楚,请告诉我。

答案 1 :(得分:0)

罗伯特的回答是一个很好的选择 - 快速结账无法更改,因为其服务器到服务器和用户需要您的API凭据 - 但如果您想坚持使用网站付款标准(WPS),请参阅以下内容:

您担心的是您的按钮可能被篡改。是的,如果您网站上的按钮是非托管/未加密按钮,则可以这样做。有些工具(如篡改数据)在发送到接收地址之前编辑HTTP POST,或者用户可以下载HTML表单并更改它,然后单击按钮(引用URL会有所不同,但可能会被欺骗);未加密的按钮 vunerable。

我建议使用以下其中一个选项来防止将来发生这种情况:

  1. The button manager API to create dynamic hosted buttons for payments
  2. Create and use hosted buttons
  3. Create and use encrypted website payment buttons