回调 URL 未接收到 JSON 数据

问题描述 投票:0回答:1

我有一个 PHP 页面接收位于

https://example.ac.ke/op/api/mypesa/index.php
的 JSON 响应 当我发布到任何一个时,我都成功地使用 Postman 发布了回复
https://example.com/op/api/mypesa/
或者 h
ttps://example.com/op/api/mypesa/index.php
但不是当我发布到
https://example.com/op/api/mypesa

我曾尝试在 htaccess 中重定向和添加尾随 / ,但没有成功。 我需要将

https://example.com/op/api/mypesa
作为我的回调 URL。当我发布时,接收页面被调用,但数据似乎没有被重定向。

需要帮助重定向页面和发布数据 因为我成功重定向了页面而不是数据

我的.htaccess有以下内容

<IfModule mod_rewrite.c>

     RewriteEngine On
     RewriteCond %{REQUEST_FILENAME}  -f [OR]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php [L,QSA]

</IfModule>

使用邮递员发帖

从页面接收json数据的数据库表

使用邮递员发布到页面

我的索引文件的内容位于 mypesa 文件夹中

<?php
   require 'config.php';
    header("Content-Type: application/json");

    $response = '{
        "ResultCode": 0, 
        "ResultDesc": "Confirmation Received Successfully"
    }';

    $mpesaResponse = file_get_contents('php://input');

    $logFile = "M_PESAConfirmationResponse.txt";

    $jsonMpesaResponse = json_decode($mpesaResponse, true); 

    $transaction = array(
            ':TransactionType'      => $jsonMpesaResponse['TransactionType'],
            ':TransID'              => $jsonMpesaResponse['TransID'],
            ':TransTime'            => $jsonMpesaResponse['TransTime'],
            ':TransAmount'          => $jsonMpesaResponse['TransAmount'],
            ':BusinessShortCode'    => $jsonMpesaResponse['BusinessShortCode'],
            ':BillRefNumber'        => $jsonMpesaResponse['BillRefNumber'],
            ':InvoiceNumber'        => $jsonMpesaResponse['InvoiceNumber'],
            ':OrgAccountBalance'    => $jsonMpesaResponse['OrgAccountBalance'],
            ':ThirdPartyTransID'    => $jsonMpesaResponse['ThirdPartyTransID'],
            ':MSISDN'               => $jsonMpesaResponse['MSISDN'],
            ':FirstName'            => $jsonMpesaResponse['FirstName'],
            ':MiddleName'           => $jsonMpesaResponse['MiddleName'],
            ':LastName'             => $jsonMpesaResponse['LastName']
    );

  
    $log = fopen($logFile, "a");
    fwrite($log, $mpesaResponse);
    fclose($log);

    echo $response;

 
    insert_response($transaction);
?>
json .htaccess callback endpoint mpesa
1个回答
0
投票

确保您的回调 url 使用 https 从 safaricom api 获得响应。您可以使用 ngrok!在互联网上隧道您的应用程序。 如果你这样做了并且你正在使用 ubuntu,你可以禁用 ufw 防火墙

sudo ufw disable
并重新启动你的计算机。

© www.soinside.com 2019 - 2024. All rights reserved.