2017-03-08 95 views
0

好的,所以我们有一个使用Joomla的会员网站,以及允许用户执行特定任务(创建团队)的组件。他们被允许登录并创建一个团队,但他们不能为该团队添加成员,直到他们支付25.00美元的费用。为什么PayPal通知URL不同

这是通过Paypal IPN发生的。下面基本上有这种形式......(删除了一些个人资料)。

\t 
 
\t <input type="hidden" name="cmd" value="_xclick"> 
 
\t <input type="hidden" name="item_name" value="<?php echo $item_name;?>"> 
 
\t <input type="hidden" name="business" value="[email protected]"> 
 
\t <input type="hidden" name="amount" value="25"> 
 
\t <input type="hidden" name="quantity" value="1"> 
 
\t <input type="hidden" name="no_note" value="1"> 
 

 
     <!--<input name="userId" value="<?php //echo $user->id;?>" type="hidden">--> 
 
     <!--<input name="task" value="paypal_register" type="hidden">--> 
 
\t <input type="hidden" name="currency_code" value="USD"> 
 
\t <!-- Enable override of buyers's address stored with PayPal . --> 
 
\t <!-- Set variables that override the address stored with PayPal. --> 
 
\t <input type="hidden" name="return" value="<?php echo JURI::ROOT().'index.php?option=com_fastball&view=payment&task=paypal_register';?>"> 
 
\t <input type="hidden" name="notify_url" value="<?php echo JURI::ROOT().'index.php?option=com_fastball&view=payment&task=paypal_register&userId='.$user->id.'&ipn=1';?>"> 
 
\t <!--<input type="image" name="submit" border="0" src="https://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif" alt="PayPal - The safer, easier way to pay online">--> 
 
</form>

现在有时IPN重定向和工作得很好。但其他时间,它缩短了从“index.php?option = com_fastball &视图=付款&任务= paypal_register & userId =”到“index.php?option = com_fastball”短url的网址,因此不会激活Joomla中包含代码来更新通知上的数据库。

它看起来相当随机。有几种情况,1 - 新用户创建新团队。 2 - 旧用户创建新团队。 3-老用户更新老团队。

但是无论如何,他们都会通过THESE通知URL将这个付款单按钮作为隐藏输入。

所以我不确定哪里的PayPal是A.)获取缩短的网址,或B.)由于某种原因,他们正在缩短它。它返回到缩短的URL与所有贝宝发布信息的URL参数显示的(& ST =完成& AMT = 25.00等从paypals服务器)

这一直是非常令人沮丧,我可能没有解释它舒服,所以如果您有任何问题或想法,请告诉我。谢谢!

回答

0

这似乎是一个最近的PayPal问题。所有的网址(return,cancel_return和notify_url)都会在第一个'&'后剥离所有内容的网址。

还要注意,问题似乎是间歇性的;它可能取决于您连接到的PayPal服务器(QueryString values removed from the IPN endpoint by PayPal)。

我已经对我自己的PayPal表单进行了一些修改,用'&'替换为'&amp;'(编码版本),这似乎工作。

+0

顺便说一句,我收到PayPal今天(3/15)的回复,表示他们已经解决了问题。 – avariant