PayPal IPN POST导致0 PHP Laravel

问题描述

我正在努力使用一个简单的存储脚本,该脚本应通过PayPal IPN调用以保存当前付款。

我正在使用

$input = json_encode($request->all());

$paylog = Paylog::create([
   'data' => $input,]);

,任何传入的POST的结果始终为“ 0”。

我的错在哪里?

解决方法

也许您是想访问$_POST

在对IPN消息进行任何内容处理之前,应先将其回传到ipnpb.paypal.com


IPN是一种非常古老且笨拙的技术,为什么要使用它?

要获取有关“当前”付款的详细信息,您应该使用v2 / checkout / orders之类的API来方便结帐。为此,您需要在服务器上使用两条路由,一条用于“设置交易”,一条用于“捕获交易”,在此处记录:https://developer.paypal.com/docs/checkout/reference/server-integration/

与您的两条路线配对的最佳批准流程是https://developer.paypal.com/demo/checkout/#/pattern/server

,

解决方案:

//Make sure encode values to UTF8
$input = json_encode(array_map('utf8_encode',$request->all()));

//And store
$paylog = Paylog::create([
   'data' => $input,]);

或者使事情变得更有效率:

$paylog = Paylog::create([
   'data' => $json_encode(array_map('utf8_encode',$request->all())),]);

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...