我正在我们网站上整合 PayPal Plus
环境 . 我们正在使用Github https://github.com/paypal/PayPal-PHP-SDK上的当前版本的 PayPal PHP SDK
(1.7.4) . 我们在 IIS
10上使用 PHP
7.0.7 .
首先,我们按照集成指南中的说明创建付款 . 我们会从付款中收到有效的审批网址(格式:https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=.. . ) . 我手动检查了浏览器中的URL .
付款在控制器中创建并提供给视图 .
控制器:
function showPaymentWall() {
$payment = $this->createPayment();
return view("payments.paypal.paymentWall",['payment'=>$payment, 'approval_url'=> $this->approvalUrl]);
}
approval_url
在方法 createPayment
中设置 .
以下是视图中的代码:
@extends('layouts.master')
@section('title')
Upgrade
@endsection
@section('content')
<div class="container">
<div class="row">
<div class="form-group col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div>{{ $approval_url }}</div>
<div id="ppplus"></div>
</div>
</div>
</div>
@endsection
@section('scriptIndividualJSCode')
<script src="https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js" type="text/javascript"></script>
<script type="application/javascript">
var ppp = PAYPAL.apps.PPP({
"approvalUrl": "{{ $approval_url }}",
"placeholder": "ppplus",
"mode": "sandbox",
"country": "DE"
});
</script>
@endsection
如您所见,有效的url显示在ppplus容器之前 . 因此很清楚,url是有效的并且由控制器正确地给出 . 但是当我访问该页面时,我总是收到此错误:
当我通过控制台检查原因时,它显示“无效的审批网址” .
有人知道为什么或我能检查什么来推进?在此先感谢您的帮助!
1 回答
经过长时间的搜索,我找到了原因 .
结果是,审批URL中的
&
必须替换为&
. 然后它奏效了 . 这可以通过PHP
函数htmlspecialchars_decode()
来完成(参见http://php.net/manual/de/function.htmlspecialchars-decode.php) . 这是我的javascript
部分的代码: