【问题标题】:How to implement recurring billing in PHP application using Braintree payment gateway?如何使用 Braintree 支付网关在 PHP 应用程序中实现定期计费?
【发布时间】:2013-05-31 19:03:48
【问题描述】:

我有一个为客户提供一些服务的 Web 应用程序。我想集成 Braintree 支付网关。我创建了一个页面,该页面获取客户的信用卡信息并使用透明重定向方法在大脑树安全保险库中创建新客户。

我不知道下一步该怎么做才能实施定期计费。向客户收取的金额因客户的用户而异。每个客户的计费周期也不同。我不知道如何实施定期计费。

以下是我的信用卡页面代码:

<?php
require_once '../_environment.php';
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != "") {
    $queryString = $_SERVER['QUERY_STRING'];
    $result = Braintree_TransparentRedirect::confirm($queryString); 
    if ($result->success) {
       //Do your stuff
    } else {
        foreach ($result->errors->deepAll() as $error) {
            $errorFound = $error->message . "<br />";
        }
        echo $errorFound ;
        exit;
    }
}
$trData = Braintree_TransparentRedirect::createCustomerData(
  array(
    'redirectUrl' => 'https://www.example.com/creditcard.php',    
  )
);
?>

<form method="POST" action="<?php echo Braintree_TransparentRedirect::url(); ?>" autocomplete="off">
<table cellpadding="0" cellspacing="0" border="0" width="98%" align="left"> 
   <tr><td align="right" style="color:#6593cf" width="40%">Customer Information</td><td align="left" colspan="2"><hr style="color:#6593cf;margin-right:30%;margin-left:2px"></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">First Name</td><td>&nbsp;</td><td><input type="text" name="customer[first_name]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Last Name</td><td>&nbsp;</td><td><input type="text" name="customer[last_name]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Company</td><td>&nbsp;</td><td><input type="text" name="customer[company]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Email</td><td>&nbsp;</td><td><input type="text" name="customer[email]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Phone</td><td>&nbsp;</td><td><input type="text" name="customer[phone]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>                    
         <tr><td align="right" style="color:#6593cf">Payment Information</td><td align="left" colspan="2"><hr style="color:#6593cf;margin-right:30%;margin-left:2px"></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Name on Card</td><td>&nbsp;</td><td><input type="text" name="customer[credit_card][cardholder_name]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Credit Card Number</td><td>&nbsp;</td><td><input type="text" name="customer[credit_card][number]" /></td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">Expiration date (mm/yy format)</td><td>&nbsp;</td><td><input type="text" name="customer[credit_card][expiration_date]" /></td></tr>   
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td align="right">CVV</td><td>&nbsp;</td><td><input type="text" name="customer[credit_card][cvv]" /></td></tr>
        <input type="hidden" name="tr_data" value="<?php echo htmlentities($trData) ?>" />
        <tr><td colspan="3">&nbsp;</td></tr>
        <tr><td colspan="3">&nbsp;</td></tr>
    <tr><td align="right"><a href=""><b>Cancel</b></a></td><td style='width:30px;'></td><td align="left"><input type="submit" value="Submit" class="btnSize" name="submit"/></td></tr>
    <tr><td colspan="3">&nbsp;</td></tr>    
</table>  

【问题讨论】:

  • 嘿 Vishal,我在 Braintree 工作。你看到我们的recurring billing using TR guide了吗?听起来您需要的帮助比 Stack Overflow 上的更多,所以请随时联系我们的support team。此外,如果您刚刚开始集成,我们建议您使用 Braintree.js 而不是 TR。
  • 感谢您回复 agf。你的意思是我应该使用 server-to-server api 和 Braintree.js 来创建客户,而不是 TR?
  • 是的。 Braintree.js 现在是我们推荐的简化 PCI 合规性的方法,而不是 TR。
  • 我使用服务器到服务器 api 和 Braintree.js 创建了信用卡 php 文件,用于将客户信息保存在 Braintree 安全保险库中。接下来我该怎么办?我应该制定一个计划吗?我应该使用braintree控制面板还是使用braintree api创建计划?
  • 您是否通过our tutorials,特别是recurring billing 上的那个?它会引导您创建计划和订阅。另外,请随时直接联系我们的support team

标签: php braintree


【解决方案1】:

您必须使用 Braintree 的特定 api 调用进行定期计费。

Braintree_Subscription::create(array(
   'paymentMethodToken' => $payment_method_token,
   'planId' => $package_code,
   'price' => $monthly_price
));

此“创建”用于定期计费。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2017-04-21
    • 1970-01-01
    • 2011-09-11
    • 2014-08-04
    • 2012-12-03
    • 2020-10-18
    • 2011-07-18
    相关资源
    最近更新 更多