Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Paypal定期付款和更新计费周期_Php_Laravel_Paypal - Fatal编程技术网

Php Paypal定期付款和更新计费周期

Php Paypal定期付款和更新计费周期,php,laravel,paypal,Php,Laravel,Paypal,我使用的是Laravel4.2。我正在做一个提供视频服务的项目。要求将PayPal支付网关与定期模式集成 虽然我曾多次使用贝宝经典API创建循环配置文件,但我几乎实现了我的目标。但我不幸地不知道,您不能在已经创建的定期概要文件中更新计费周期的日期 现在我感到无助 我有一个为用户提供视频服务的项目。其基本思想是,在注册时,用户选择订阅计划并插入信用卡详细信息。由于是按月订阅,因此每月应自动续费 在此期间,如果用户升级了更高的计划,则将向他收取本月新订阅金额和当前活动订阅金额的差额,并且他的计费周期

我使用的是
Laravel4.2
。我正在做一个提供视频服务的项目。要求将
PayPal
支付网关与
定期模式集成

虽然我曾多次使用贝宝经典API创建
循环配置文件
,但我几乎实现了我的目标。但我不幸地不知道,您不能在已经创建的定期概要文件中更新计费周期的日期

现在我感到无助

我有一个为用户提供视频服务的项目。其基本思想是,在注册时,用户选择订阅计划并插入
信用卡
详细信息。由于是按月订阅,因此每月应
自动续费

在此期间,如果用户
升级了更高的计划,则将向他收取
本月新订阅金额和当前活动订阅金额的
差额
,并且他的计费周期必须从今天更新到下个月

例如,有三种类型的认购计划,如下所示:

Basic for $10/month, 
Economy  for $20/month and 
Premium for $30/month
如果用户在
5月1日
订阅了
10美元
基本计划
,则其
计费周期将设置为从
5月1日到6月1日
,依此类推。每个月他将被自动收取10美元的费用,直到他取消订阅或停止重复他的个人资料

现在,在5月5日之间,他将他的计划升级为经济计划(提供更多视频),实际金额为20美元,他将被收取当月差额20-10美元的费用(即5月),他的
计费周期
将从现在的
5月5日设置到6月5日
,从6月5日开始,他将每月自动收取
20美元的费用

此外,在第一次订阅时,应要求用户仅插入一次
信用卡
详细信息
,之后,对于任何升级或重复使用,应
而不是
要求用户插入信用卡

所有这些过程应该只在我的网站上完成,用户不应该被重定向到贝宝网站


有人知道如何做到这一点吗?

这包括两个部分:Paypal和计费逻辑

Paypal允许用户预先授权公司从Paypal中扣除任意金额。暴雪和MyUS.com就是这方面的两个例子。用户一次性授权0.00美元,然后网站可以使用相同的授权收取任何金额的费用-请考虑改用该授权。我不太清楚这个功能到底叫什么

编辑:它被称为计费协议(/Reference Transactions)

在计费逻辑方面,当您在周期中升级用户时,不要更改周期日期。如果他们在1月1日注册,则继续在每月1日向他们开具账单。相反,如果用户升级,请执行以下操作:

  • 更新网站上的账单配置文件,以便在下一个付款周期收取更高的金额
  • 立即按比例向用户收取费用,以弥补差额
  • 在你的例子中:我在2015年5月1日注册了每月10美元的服务。5月5日,即订阅4天后,我决定升级到每月20美元。现在你做这两件事。将我的个人资料设置为在2015年6月1日扣除20美元,然后计算升级的按比例金额:

    该计费周期还剩26天,占整个周期的83.8%。立即向我收取8.38美元(10美元差价*0.838),以获得下一定价层的全部好处。如果我在本月晚些时候升级,比如说在15日,我将进入50%的周期。如果我在30日升级,计费周期将剩下1天(3.2%),按比例收费将为0.32美元


    如果我在2月5日再次下调信用评级,情况将相反。在3月1日将我的账单档案更改为向我收取10美元,然后计算出按比例的折扣。我在28天的周期中进入了4天,因此我需要在剩余的周期(24天)中退款,这是85.7%,因此我立即从我的帐户中获得8.57美元的信用,并且在3月1日只收取1.43美元


    如果我等到2月27日才将信用评级下调至10美元/月,那么这个周期只剩下3.5%的剩余时间,我的账户只会获得0.35美元的信用额度。

    如果我在2月5日再次下调信用评级,情况正好相反。在3月1日将我的账单档案更改为向我收取10美元,然后计算出按比例的折扣。我在28天的周期中进入了4天,因此我需要在剩余的周期(24天)中退款,这是85.7%,因此我立即从我的帐户中获得8.57美元的信用,并且在3月1日只收取1.43美元


    如果我等到2月27日才将信用评级下调至10美元/月,那么这个周期只剩下3.5%的时间,我的账户只能获得0.35美元的信用。

    必须是贝宝吗?Laravels出纳使用Stripe完成所有这些@MichaelN它自己把信用卡信息存储在里面吗?根据要求,我不能存储任何客户的信用卡信息。此外,它还支持重复性功能和更新计费周期,而无需再次询问信用卡信息进行任何操作?根据strip api链接,有一条语句“更新计划名称。其他计划细节(价格、间隔等)在设计上是不可编辑的”。这是什么意思?一旦设计完成,我是否就无法更新周期?PayPal gateway是否有专家?谢谢。但是我已经开始使用Stripe而不是PayPal,因为PayPal有很多限制要遵循。Stipe工作得更好。感谢您的解释,但是PayPal不允许在没有用户界面的情况下直接收费,正如您在步骤2中所说的。因此,当用户打开选定的订阅计划时,您不能将该金额与订阅金额一起添加。你知道如何在不收费的情况下收费吗