我有一个PHP页面,它接收位于https://example.ac.ke/op/api/mypesa/index.php
的JSON响应。当我发布到https://example.com/op/api/mypesa/
或h ttps://example.com/op/api/mypesa/index.php
时,使用Postman可以成功发布响应,但当我发布到https://example.com/op/api/mypesa
时,无法成功发布响应。
我尝试过重定向并在htaccess中添加尾随/,但没有成功。我需要将https://example.com/op/api/mypesa
作为回调URL。当我发布时,接收页面被调用,但似乎数据没有被重定向。
需要帮助重定向页面和POST数据因为我已成功重定向页面,但未重定向数据
My .htaccess包含以下内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
使用 Postman 投递
从页面接收json数据的数据库表
使用 Postman 将邮件发送到页面
位于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);
?>
1条答案
按热度按时间yvgpqqbh1#
确保你的回调网址使用https从safaricom API获得响应,你可以使用ngrok!在互联网上隧道你的应用,如果你已经这样做了,并且你使用的是ubuntu,你可以禁用ufw防火墙
sudo ufw disable
并重启你的电脑。