任何人都可以为我提供帮助,Razorpay
的任何经验,我试图将控制器中的值传递给javascript中的视图,它没有填充data-order_id
,并且出现了以上错误,这意味着我得到了空值
Razorpay参考-Sample Code和Standard Checkout Script
这是我的观点-welcome.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Razorpay</title>
<style>
.razorpay-payment-button {
background: #6c5ce7;
color: whitesmoke;
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 1;
display: block;
width: 15vw;
height: 8vh;
border: none;
padding: 0.3rem 0.3rem;
margin: 50px 50px;
}
</style>
</head>
<body>
<!-- Razorpay Checkout Script -->
<form action="/success" method="POST">
<script src="https://checkout.razorpay.com/v1/checkout.js"
data-key="{{ env('RAZORPAY_KEY') }}"
data-amount="$order('amount')"
data-currency="INR"
data-id="$order('id')"
data-buttontext="Pay Now"
data-name="Test Corp"
data-description="Test Transaction"
data-image="img/brand.png"
data-prefill.name="Test Example"
data-prefill.email="test@example.com"
data-prefill.contact="9999999999"
data-theme.color="#F37254"></script>
<input type="hidden" custom="Hidden Element" name="hidden">
</form>
</body>
</html>
我的控制器-PaymentController.php
<?php
namespace App\Http\Controllers;
use Razorpay\Api\Api;
class PaymentController extends Controller
{
public function gen_order_id()
{
$api = new Api(env('RAZORPAY_KEY'), env('RAZORPAY_SECRET'));
$order = $api->order->create([
'receipt' => 'rcptid' . '_' . mt_rand(),
'amount' => 50000,
'currency' => 'INR',
'payment_capture' => '1',
]);
}
}
我的API路由-api.php
<?php
use Illuminate\Support\Facades\Route;
Route::get('orders', 'PaymentController@gen_order_id');
这是我执行dd($order)
Razorpay\Api\Order {#275
#attributes: array:12 [
"id" => "order_xxxxxxxxxxxxxx"
"entity" => "order"
"amount" => 50000
"amount_paid" => 0
"amount_due" => 50000
"currency" => "INR"
"receipt" => "rcptid_xxxxxxxxxxxx"
"offer_id" => null
"status" => "created"
"attempts" => 0
"notes" => Razorpay\Api\Order {#273
#attributes: []
}
"created_at" => 1591257352
]
}
答案 0 :(得分:0)
我不确定您要完成什么,但是刀片文件中肯定存在问题:
data-amount="request()->route()->orders($amount)"
...
data-order_id="request()->route()->orders($order_id)"
应该是:
data-amount="{{ request()->route()->orders($amount) }}"
...
data-order_id="{{ request()->route()->orders($order_id) }}"
希望这会有所帮助:)
要将变量从控制器传递到刀片视图,请使用以下方法:
namespace App\Http\Controllers;
use Razorpay\Api\Api;
class PaymentController extends Controller
{
...
return view('path.to.blade', [
'order_id' => $order_id,
'amount' => $amount,
]);
}
要从刀片文件访问传递的var,请使用小写的小写法,其中包含变量名:
data-amount="{{ $amount }}"
...
data-order_id="{{ $order_id }}"