我真的很想自己做这件事,但是在阅读了 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 界面中设置订阅选项,或者我必须在每笔交易中发送订阅详细信息?
第四,我这样走对吗?从他们的网站和文档中,我了解到我需要高级付款和定期计费,仅此而已。要求是用户不能离开网站,所以我想使用托管结帐页面。
编辑:我解决了第一个和第二个问题(这是我在这里发布问题后第二次自己弄清楚了:)),但我需要第三点和第四点的帮助。
我还有其他问题。可以在用户选定的期间暂停定期计费吗?