如何使用Braintree支付网关在PHP应用程序中实现重复计费?

如何使用Braintree支付网关在PHP应用程序中实现重复计费?,php,braintree,Php,Braintree,我有一个为客户提供服务的web应用程序。我想集成Braintree支付网关。我创建了一个页面,该页面获取客户的信用卡信息,并使用透明重定向方法在brain tree安全保险库中创建新客户 我不知道下一步要做什么来实现重复计费。根据客户的用户不同,向客户收取的金额因客户而异。每个客户的计费周期也不同。我不知道如何实现重复计费 Braintree_Subscription::create(array( 'paymentMethodToken' => $payment_method_tok

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

我不知道下一步要做什么来实现重复计费。根据客户的用户不同,向客户收取的金额因客户而异。每个客户的计费周期也不同。我不知道如何实现重复计费

Braintree_Subscription::create(array(
   'paymentMethodToken' => $payment_method_token,
   'planId' => $package_code,
   'price' => $monthly_price
));
以下是我的信用卡代码页面:

<?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>  


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

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

这个“创建”是用于定期计费的。

嘿,Vishal,我在Braintree工作。你看过我们的电影了吗?听起来你需要的帮助比你在堆栈溢出上得到的要多,所以请随时联系我们的管理员。此外,如果您刚刚开始集成,我们建议使用而不是TR。感谢回复agf。你的意思是我应该使用用户服务器到服务器的api来创建客户以及Braintree.js,而不是TR?yes。Braintree.js现在是我们推荐的简化PCI合规性的方法,而不是TR。我已经创建了信用卡php文件,使用服务器到服务器api和Braintree.js将客户信息保存在Braintree secure vault中。接下来我该怎么办?我应该制定一个计划吗?我应该使用braintree控制面板还是使用braintree api来创建计划?您是否已经完成了,特别是在上一个?它指导您创建计划,然后创建订阅。此外,请随时与我们的客户直接联系。
Braintree_Subscription::create(array(
   'paymentMethodToken' => $payment_method_token,
   'planId' => $package_code,
   'price' => $monthly_price
));