为了账号安全,请及时绑定邮箱和手机立即绑定

无法从其他域接收 $_POST 数据

无法从其他域接收 $_POST 数据

PHP
侃侃无极 2022-12-23 14:26:53
我无法接收$_POST数据表https://api.razorpay.com付款成功后,会出现一个重定向表单https://api.razorpay.com,$_POST重定向 URL 为http://safebrowser.tk/payment/verify.php验证.php<?phpinclude("$_SERVER[DOCUMENT_ROOT]/include/config.php");require_once("$_SERVER[DOCUMENT_ROOT]/vendor/autoload.php");use Razorpay\Api\Api;use Razorpay\Api\Errors\SignatureVerificationError;$success = true;$error = "Payment Failed";if (empty($_POST['razorpay_payment_id']) === false) {    $api = new Api(RP_KEY, RP_SECRET);    try {        // Please note that the razorpay order ID must        // come from a trusted source (session here, but        // could be database or something else)        $attrbutes = array(            'razorpay_signature' => filter_input(INPUT_POST, 'razorpay_signature'),            'razorpay_payment_id' => filter_input(INPUT_POST, 'razorpay_payment_id'),            'razorpay_order_id' => filter_input(INPUT_POST, 'razorpay_order_id')        );        $api->utility->verifyPaymentSignature($attrbutes);    } catch (SignatureVerificationError $e) {        $success = false;        $error = 'Razorpay Error : ' . $e->getMessage();    }}if ($success === true) {    $html = "<p>Your payment was successful</p>             <p>Payment ID: ".filter_input(INPUT_POST, 'razorpay_payment_id')."</p>";} else {    $html = "<p>Your payment failed</p>             <p>{$error}</p>";}echo $html;var_dump($_POST);?>但是在网络服务器中我没有得到转储值Your payment was successfulPayment ID:array(0) { }但是当我在本地主机上尝试时,我得到了转储值Your payment was successfulPayment ID: pay_EeJzbCSZQLPap8array(3) { ["razorpay_payment_id"]=> string(18) "pay_EeJzbCSZQLPap8" ["razorpay_order_id"]=> string(20) "order_EeJyrQD9A7Iqrx" ["razorpay_signature"]=> string(64) "31d210c64f3834751dec82e5d166e7ca92186c2b37d4175e4083832a49f0a548" }我尝试将此添加到verify.phpheader('Access-Control-Allow-Origin: *');我仍然没有得到任何 $_POST 值。我如何$_POST从其他领域获得价值?
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

检查 Razorpay 的设置,可能有一个设置需要允许您的 safebrowser.tk 域。您也可能处于“沙盒”模式,这种模式通常只允许某些开发域,例如本地主机。



查看完整回答
反对 回复 2022-12-23
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

require('config.php');

session_start();

require('razorpay-php/Razorpay.php');

use Razorpay\Api\Api;

use Razorpay\Api\Errors\SignatureVerificationError;

$success = true;

$error = "Payment Failed";

if (empty($_POST['razorpay_payment_id']) === false)

{

    $api = new Api($keyId, $keySecret);

    try

    {

    // Please note that the razorpay order ID must

        // come from a trusted source (session here, but

        // could be database or something else)

        $attributes = array(

            'razorpay_order_id' => $_POST['razorpay_order_id'],

            'razorpay_payment_id' => $_POST['razorpay_payment_id'],

            'razorpay_signature' => $_POST['razorpay_signature']

        );

        $api->utility->verifyPaymentSignature($attributes);

    }

    catch(SignatureVerificationError $e)

    {

        $success = false;

        $error = 'Razorpay Error : ' . $e->getMessage();

    }

}

if ($success === true)

{

    $payment = $api->payment->fetch($_POST['razorpay_payment_id']);

    print_r($payment);

    echo "<br><br><br>";

    $html = "<p>Your payment was successful</p>

             <p>Payment ID: {$_POST['razorpay_payment_id']}</p>";

}

else

{

    $html = "<p>Your payment failed</p>

     <p>{$error}</p>";

}

echo $html;

//img1.sycdn.imooc.com//63a54a4f0001f6b113400310.jpg

查看完整回答
反对 回复 2022-12-23
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号