必需参数 $path 遵循可选参数 $handlers paypal sdk [重复]
Posted
技术标签:
【中文标题】必需参数 $path 遵循可选参数 $handlers paypal sdk [重复]【英文标题】:Required parameter $path follows optional parameter $handlers paypal sdk [duplicate] 【发布时间】:2021-06-09 02:05:08 【问题描述】:在这个问题上我真的需要你的帮助,因为我不明白如何解决它或从哪里开始寻找答案。事情是这样的:
我正在尝试使用 php 8 将 paypal 集成到 Laravel 8。我正在使用的包是 paypal/rest-api-sdk-php v1。我知道这已被弃用,但我还没有找到任何其他解决方案来使用 v2。
好吧,每当我尝试使用 $payment->create($this->api_context) 方法创建付款时 - 顺便说一下,您可以查看我从下面获得这些示例的操作指南 - 过程给我一个错误,说以下内容
ErrorException Required parameter $path follows optional parameter $handlers
我知道这是因为在必需参数之前调用了可选参数。但老实说,我已经为此工作了好几个星期,但我仍然无法弄清楚。
这里有一些证据: 错误屏幕:
类 PagoController(所有魔法开始失效的地方)
class PagoController extends Controller
私有 $api_context;
public function __construct()
$paypal_config = Config::get('paypal');
$this->api_context = new ApiContext(
new OAuthTokenCredential(
$paypal_config['client_id'],
$paypal_config['secret']
)
);
$this->api_context->setConfig($paypal_config['settings']);
//dd($this->api_context);
public function pagarConPaypal(Request $request, $id_conciliacion)
//Obtener valores de la conciliación
$registro_pago = Conciliacion::where('id_conciliacion', '=', $id_conciliacion)->first();
//dd($registro_pago);
//--Crea un nuevo pago
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$amount = new Amount();
$amount->setTotal($registro_pago->monto);
$amount->setCurrency('MXN');
$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription($registro_pago->concepto);
$callbackURL = url('/paypal/estado');
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($callbackURL)
->setCancelUrl($callbackURL);
$payment = new Payment();
$payment->setIntent('Sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
//dd($payment);
//--Aplica el pago creado
try
$payment->create($this->api_context, null);
// echo $payment;
return redirect()->away($payment->getApprovalLink());
catch (PayPalConnectionException $ex)
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
任何帮助将不胜感激。提前致谢
【问题讨论】:
“我使用的软件包是 paypal/rest-api-sdk-php v1。我知道这已被弃用,但我还没有找到任何其他解决方案来使用 v2。”唔?使用当前的 Checkout-PHP-SDK。您正在做的事情已被弃用并且没有支持。 当我只想让用户重定向到贝宝付款时安装它可以吗?我希望用户单击一个按钮进行支付,将他们重定向到贝宝以授权付款并自己执行付款......只是问,因为这是我第一次使用贝宝 for laravel 【参考方案1】:不要使用已弃用的 SDK,没有对它的支持。
理想情况下,您也不应该对旧网站使用任何重定向,因为这是一种旧的集成方法。
这是最好的方法:
使用 Checkout-PHP-SDK 在您的服务器上创建两条路由:一条用于“创建订单”,一条用于“捕获订单”documented here。这些路由在访问时应该只返回/输出 JSON 数据(没有其他 html 或文本) 将您的两条路线与调用它们的以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server【讨论】:
非常感谢。我已经处理这个问题好几个星期了!!!我认为这是因为我使用的是 PHP 8 并且他们已经重构了那部分以上是关于必需参数 $path 遵循可选参数 $handlers paypal sdk [重复]的主要内容,如果未能解决你的问题,请参考以下文章