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参数?
答案 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) ;