贝宝返回“?”在返回网址的中间(无法获取令牌和PayerID)

时间:2018-07-03 23:23:01

标签: php .htaccess url paypal

Paypal开始从沙箱返回此URL:

http://www.url.com/en/order/201807035911&success=true&paymentId=PAY-3VW434721W751862GLO563ZQ?token=EC-1CD5257354412893B&PayerID=AZDJ2H9PDTOYY

URL中间的问号(.. 63ZQ **?** token = E ..)。 在PHP SDK中配置的URL是:

$successUrl = "http://www.url.com/en/order/201807035911&success=true";

我可以毫无问题地通过_GETpaymentId,但是由于问号而无法访问令牌和PayerID。

我不知道如何以一种聪明的方式解决它。我什至尝试了.htaccess,这根本不起作用(我什至都​​没有paymentId参数):

RewriteRule ^(.*)/order/(.*)&success=(.*)&paymentId=(.*)?token=(.*)&PayerID=(.*) overview.php?jazyk=$1&id=$2&success=$3&paymentId=PAY-$4&token=$5&PayerID=$6 [L]

使用此.htaccess,我可以在我的网站上使用PaymentID,但不能获取其余的付款。

RewriteRule ^(.*)/order/(.*) overview.php?jazyk=$1&id=$2 [L]

如何访问令牌和PayerID参数?

2 个答案:

答案 0 :(得分:0)

我将检查配置的回发URL是否正确。它似乎有一个&,前面没有?,以标记查询字符串的开头。

"http://www.url.com/en/order/201807035911&success=true"

您不需要手动添加success=true,因为状态将在请求的查询字符串中提供。尝试将其设置为公正:

"http://www.url.com/en/order/201807035911"

答案 1 :(得分:0)

您可以获取URL,将内容放在export CURL_CONFIG=~/my/libcurl/curl-config的右侧,然后使用parse_str()来获取其他值。

如果您已经拥有完整的URL,则可以在第一步中跳过?

$_SERVER['REQUEST_URI']

您想要的东西现在位于数组// your URL $url = $_SERVER['REQUEST_URI'] ; // split it on the '?' $urlParts = explode('?',$url) ; // grab the variables and put them in $rightOfTheQuestionMark parse_str($urlParts[1],$rightOfTheQuestionMark) ;