我真的很想自己做这件事,但在阅读了将近一周的 Paypal 关于他们的服务、API 和附加服务的文档后,我放弃了。我需要帮助。
我有一个网站,每月订阅三种不同的套餐,我想使用 PayPal 的托管页面。现在,我面临着一些问题。
首先,他们的文档非常困惑,以至于我仍然不明白他们提供了什么以及我需要什么。因此,我们将不胜感激任何帮助。目前,我已经设置了带有定期计费插件和托管结帐页面的高级付款。我的第一个问题是,当我进行 API 调用以获取 SecureTokenID 时,我得到响应 1(用户身份验证失败),但登录详细信息是正确的,我检查了多次。
这是我进行此调用的代码:
/* - build NVP to be sent to paypal - */
$post['PARTNER']='paypal';
$post['VENDOR']='*';
$post['USER']='*';
$post['PWD']='*';
$post['TRXTYPE']='S';
$post['AMT']='5';
$post['CREATESECURETOKEN']='Y';
$post['SECURETOKENID']=md5(time().rand().time());
$post['MODE']='TEST';
$url='https://pilot-payflowpro.paypal.com';
/* - do cURL request to PayPal's API - */
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
// I know, inhere should be a certificate and it will be in final version
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
// curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10); // 3 seconds to connect
// curl_setopt ($ch, CURLOPT_TIMEOUT, 10); // 10 seconds to complete
$output = curl_exec($ch);
if(curl_errno($ch)){
echo'error:' . curl_error($ch);
}
curl_close($ch);
第二个问题是,我究竟可以在哪里输入一个自定义变量字段,它将代表一个数据库条目,这样我就可以从 IPN 知道哪个用户订阅/取消订阅了?
第三,是否可以在 PayPal Manager 界面中设置订阅选项,还是我必须在每笔交易中发送订阅详细信息?
第四,我走的路对吗?从他们的网站和文档中,我了解到我需要预付款和经常性账单,仅此而已。 要求是用户不能离开网站,所以我想使用托管结帐页面。
编辑:我解决了第一个和第二个问题(这是我在此处发布问题后第二次自己解决 :)),但我需要第三个和第四个问题的帮助。
我还有其他问题。是否可以在用户选择的期间暂停定期计费?
最佳答案
要回答您的第三个问题,您需要将详细信息发送过来。您将无法在管理器中将订阅选项设置为每次创建配置文件时配置文件的默认值。您在管理器中唯一可以做的就是登录并根据您每次手动设置的条款在需要时设置个人资料。
至于您的其他问题,您可以使用 pro 并让买家留在您的网站上并进行 API 调用并完全控制流程,或者您可以使用托管页面,其中信用卡部分将位于 PayPal 的页面上.您可以将此部分放在您网站上的 iFrame 中,这样看起来商家仍在您的网站上。如果需要,您也可以使用透明重定向。
关于php - PayPal 托管页面和定期计费(附加 : Recurring Billing Suspension),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774366/