1

我正在为我的 laravel 应用程序使用 Instamojo。

我有一个输入名称的表单,例如 vtype、vname、名称、电话、日期、价格。

我的 instamojo index.php 看起来像这样——

<?php

    use App\Vname;

    $vname = Vname::find($request->vname);
    $api = new Instamojo\Instamojo(config('instamojo.api_key'), config('instamojo.auth_token'), 'https://test.instamojo.com/api/1.1/');

    try {
        $response = $api->paymentRequestCreate(array(
            "purpose" => "Online Vazhipad",
            "amount" => $vname->price,
            "buyer_name" => $request->name,
            "phone" => $request->phone,
            "send_email" => true,
            "email" => Auth::user()->email,
            "allow_repeated_payments" => false,
            "redirect_url" => url('/online_vazhipad/thankyou')
            "webhook" => url('/online_vazhipad/webhook')
        ));
        $pay_ulr = $response['longurl'];
        header("Location: $pay_ulr");
        exit();
    }
    catch (Exception $e) {
        print('Error: ' . $e->getMessage());
    }

?>

我的 webhook 文件看起来像这样 -

<?php

    $data = $_POST;
    $mac_provided = $data['mac'];
    unset($data['mac']);

    $ver = explode('.', phpversion());
    $major = (int) $ver[0];
    $minor = (int) $ver[1];

    if($major >= 5 and $minor >= 4){
        ksort($data, SORT_STRING | SORT_FLAG_CASE);
    }
    else{
        uksort($data, 'strcasecmp');
    }

    $mac_calculated = hash_hmac("sha1", implode("|", $data), config('instamojo.private_salt'));

    if($mac_provided == $mac_calculated){
        echo "MAC is fine";
        if($data['status'] == "Credit"){

            // Payment was successful my database code will be placed here

        }
        else{
            return 'failed';
        }
    }
    else{
        echo "Invalid MAC passed";
    }

?>

我想向我的数据库添加更多信息,例如 vtype 和 vname,但我不知道如何将数据从表单中获取到这里。

从文档中我了解到,我们从 instamojo 获得的发布请求仅包含这么多

请帮我。

4

0 回答 0