Reputation: 966
I want to check the Referal Model for the value and when the value matches with my input I have to pay rupees 350 else I have to pay 375 .But I am redirect to pay 350 everytime even if I have entered invalid code
I have tried this logic but it didn't worked
use App\Theme_User;
use App\Theme;
use App\activity_users;
use Illuminate\Http\Request;
use App\User;
use App\Referal;
use Illuminate\Support\Facades\Auth;
public function pay(Request $request){
$api = new \Instamojo\Instamojo(
config('services.instamojo.api_key'),
config('services.instamojo.auth_token'),
config('services.instamojo.url')
);
$referral = $request->input('refer');
$valid_referral = Referal::select('referal_code')->where('referal_code', $referral)->get();
Theme_User::where('Payment_id', '=', 'Dummy')->delete();
$sale_rel = new Theme_User;
$sale_rel->User_id = Auth::user()->id;
if($request->input('purpose') === "Gratitude Theme")
$sale_rel->Theme_id = 1;
$sale_rel->Payment_id = "Dummy"; //$response['payments'][0]['payment_id'];
$sale_rel->Address = $request->input('address');
$sale_rel->Unlock_key = \Uuid::generate()->string;
$sale_rel->referal_id = $referral;
$sale_rel->Unlocked = 0;
$sale_rel->save();
if($referral == $valid_referral){
try {
$response = $api->paymentRequestCreate(array(
"purpose" => $request->input('purpose'),
"amount" => 350,
"buyer_name" => Auth::user()->name,
"send_email" => true,
"email" => Auth::user()->email,
"redirect_url" => "http://127.0.0.1:8000/pay-success"
));
header('Location: ' . $response['longurl']);
exit();
}catch (Exception $e) {
print('Error: ' . $e->getMessage());
}
}
else{
try {
$response = $api->paymentRequestCreate(array(
"purpose" => $request->input('purpose'),
"amount" => 375,
"buyer_name" => Auth::user()->name,
"send_email" => true,
"email" => Auth::user()->email,
"redirect_url" => "http://127.0.0.1:8000/pay-success"
));
header('Location: ' . $response['longurl']);
exit();
}catch (Exception $e) {
print('Error: ' . $e->getMessage());
}
}
}
I want to pay rupees 350 when I have a valid referal code else I have to pay 375
Upvotes: 0
Views: 181
Reputation: 15296
Try it.
use App\Theme_User;
use App\Theme;
use App\activity_users;
use Illuminate\Http\Request;
use App\User;
use App\Referal;
use Illuminate\Support\Facades\Auth;
public function pay(Request $request){
$api = new \Instamojo\Instamojo(
config('services.instamojo.api_key'),
config('services.instamojo.auth_token'),
config('services.instamojo.url')
);
Theme_User::where('Payment_id', '=', 'Dummy')->delete();
$sale_rel = new Theme_User;
$sale_rel->User_id = Auth::user()->id;
if($request->input('purpose') === "Gratitude Theme")
$sale_rel->Theme_id = 1;
$sale_rel->Payment_id = "Dummy"; //$response['payments'][0]['payment_id'];
$sale_rel->Address = $request->input('address');
$sale_rel->Unlock_key = \Uuid::generate()->string;
$sale_rel->referal_id = $referral;
$sale_rel->Unlocked = 0;
$sale_rel->save();
$amount = 375;
$valid_referral = Referal::select('referal_code')->where('referal_code', $request->input('refer'))->first();
if(!empty($valid_referral)){
$amount = 350;
}
try {
$response = $api->paymentRequestCreate(array(
"purpose" => $request->input('purpose'),
"amount" => $amount,
"buyer_name" => Auth::user()->name,
"send_email" => true,
"email" => Auth::user()->email,
"redirect_url" => "http://127.0.0.1:8000/pay-success"
));
header('Location: ' . $response['longurl']);
exit();
}catch (Exception $e) {
print('Error: ' . $e->getMessage());
}
}
Upvotes: 1
Reputation: 6233
Use
$valid_referral = Referal::select('referal_code')->where('referal_code', $referral)->first();
Instead of
$valid_referral = Referal::select('referal_code')->where('referal_code', $referral)->get();
get() gives you a collection which you need to iterate to get values but first() gives you an object. In your case you need the object. Not the collection.
Upvotes: 0