我已经创建了一条路线和一个控制器功能来处理从外部支付网关发布的通知。我正在使用Guzzle处理原始输出。
$data = file_get_contents('php://input');
$client = new \GuzzleHttp\Client();
$res = $client->get('php://input');
$content = (string) $res->getBody();
$notification = json_decode($content);
// add to database
我怀疑无法在Laravel中执行此操作,但是找不到解决方案。我在https://www.apirequest.io/上进行了后期测试,但收到此错误:
错误:请求已终止可能的原因:网络处于 在离线状态下,Access-Control-Allow-Origin不允许使用Origin 页面正在卸载等。
感谢您的帮助!
我也尝试不使用Guzzle
$data = file_get_contents('php://input');
$notification = json_decode($data);
我试图运行一个空白函数来写入数据库,但没有成功,因此我认为我在Laravel中做错了。
答案 0 :(得分:0)
您是否有依赖Guzzle的原因?为什么不简单地将Request
对象注入Controller函数并从中获取主体内容呢?
use Illuminate\Http\Request;
...
class PaymentController extends Controller
{
...
public function storePaymentNotification(Request $request)
{
// Raw content string
$content = $request->getContent();
// JSON decoded data
$json = $request->json();
}
...
}