更简单的方式集成PayPal快速结账?

时间:2013-03-25 23:39:02

标签: php javascript wordpress curl paypal

我为Wordpress CMS构建了一个产品生成和显示插件,现在我正在尝试将某种形式的PayPal集成集成到结帐流程中。

我有购物车,产品,运费,总数,以及我想到的一切,我希望有人能指出我向PayPal发送此信息的最简单方向。我知道这样做的一些方法并不安全,而另一些方法则会让你像某种表演犬一样跳过篮球。我一直在努力学习如何使用cURL然后如何让它与PHP一起工作 - 这看起来有点混乱。我现在有cURL在我的WAMP服务器上工作......但是..

有更好的方法还是我应该继续学习cURL?

我可以格式化数据但是它需要发送给PayPal并且不介意用JavaScript做这件事 - 这不是支付墙,并且每个订单都由人检查准确性 - 所以有人搞乱了客户端脚本不会打扰我。我也肯定想把它们发送到PayPal,我不想存储/处理他们的信用卡信息。然而,拥有IPN会很好。有人能指出我正确的方向或向我保证我已经走向了这个方向吗?

非常感谢。

2 个答案:

答案 0 :(得分:7)

这就是我自动重定向到PayPal的所有表格细节;

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="paypal">

 <input type="hidden" name="cmd" value="_xclick" />
  <input type="hidden" name="cbt" value="Return to example" />
 <input type="hidden" name="business" value="email" />
 <input type="hidden" name="item_name" value="example Purchase" />
 <input type="hidden" name="amount" value="9.99">
 <input type="hidden" name="button_subtype" value="services" />
 <input type="hidden" name="no_shipping" value="1">
 <input type="hidden" name="return" value="URL" />
 <input type="hidden" name="notify_url" value="URL"/>
 <input type="hidden" name="cancel_return" value="URL" />
<input type="hidden" name="currency_code" value="USD"/>
<input type="hidden" name="image_url" value="" />
<input type="hidden" id="custom" name="custom" value="invoice_id to track"/>
 <input type="hidden" class="btn btn-primary" style="width:100%" alt="PayPal - The safer, easier way to pay online!"/>

</form>

对于多个产品,您只需向表单添加更多产品,例如;

<input type="hidden" name="item_name_1" value="Item #1">
<input type="hidden" name="amount_1" value="1.00">
<input type="hidden" name="item_name_2" value="Item #2">
<input type="hidden" name="amount_2" value="2.00">

然而,使用这种方法并不是很好

所有数据都需要使用PHP生成并输入到页面中,您还需要在IPN回拨时检查交易以确保其已付款。

<script type="text/javascript">
  function myfunc () {
     var frm = document.getElementById("paypal");
     frm.submit();
  }
  window.onload = myfunc;
</script>

答案 1 :(得分:3)

您可能想要使用新的PayPal SDK。他们有一套很好的示例代码, 包括快速结账和IPN的代码。 试试这里 https://www.x.com/developers/paypal/documentation-tools/paypal-sdk-index 获取用于Express结帐的SDK。在这 时间,他们应该在SDK 98 for PHP。

你不必担心卷曲, SDK会为您完成所有这些工作。 一个典型的电话可能是这样的。

$setECResponse = $paypalService->SetExpressCheckout($setECReq);

这行代码是在样本之后建模的。它的 所有面向对象。他们为您提供课程。 在这种情况下,您填写了一个请求对象, 这些例子说明了如何做到这一点;只是使用 样品作为模板。

听起来你想做PayPal Express结账, 这样你就不必处理信用卡或其他任何东西 像那样。用户被重定向到PayPal网站 所有的金融交易都在那里发生。该 用户被重定向回您的网站。然后你有一个 用户可以查看订单并单击的页面 如果他们批准,请提交。当用户点击提交时, 你打电话给PayPal API告诉PayPal该交易 被批准。 PayPal然后执行交易和 向您发送带有交易ID的确认信息。 然后,您可以调用getTransactionDetails并显示 确认给客户。你可以另外放 那些交易细节到数据库中。

以下是您可以为此调用的API。这些 与他们提供的示例代码密切建模

$paypalService->SetExpressCheckout($setECReq);

控制转到PayPal网址,用户转到 通过几页那里。控制权返回给你。

您的订单审核页面     $ paypalService-&GT; GetExpressCheckoutDetails($ getExpressCheckoutReq);

您的订单确认页

$paypalService->GetExpressCheckoutDetails($getECReq);

$paypalService->DoExpressCheckoutPayment($DoECReq);

告诉PayPal进行交易。

$paypalService->GetTransactionDetails($request);

您可以在此处将交易详情放入数据库中。 您也可以给自己发送包含所有细节的邮件, 这样,只要交易发生,你就会知道。

IPN可能有点棘手。有一个示例IPN侦听器 他们提供的,这将有所帮助。你需要 在PayPal网站上设置您的侦听器URL。你会 还需要设置SSL证书。

SDK是相当新的,但PayPal正在开发一个偶数 更新的做事方式,developer.paypal.com。它刚刚问世 在过去一个月左右。你可能也想研究一下。