Öncelikle merhaba
Ben ödeme formunda şu tasarımı kullanıyorum https://github.com/jessepollak/card form güvenliği içinde https://jqueryvalidation.org/documentation/ bunu kullanıyorum.
Birazcık detaylı anlatmaya çalışıyorum başkalarına da yardımcı olabilmek için
-Blade içinde
<fieldset>
<div class="form-card">
<div class="row" style="margin-bottom:20px">
<div class="col-7">
<h3 class="fs-title">Kart bilgisi:</h3>
</div>
<div class="col-5">
<p class="steps">Durak 3 - 3</p>
</div>
</div>
<div class='card-wrapper'></div>
<!-- CSS is included via this JavaScript file -->
<script src="/js/jquery.card.js"></script>
<script src="/js/card.js"></script>
<div class="project" style="margin-top: 20px;">
<div>
<label for="">Kart bilgisi</label>
</div>
<input type="text" class="form-control" name="number" id="number">
</div>
<div class="project-select-top-20" style="margin-top: 20px;">
<div>
<label for="">isim</label>
</div>
<input type="text" class="form-control" name="name" id="name">
</div>
<div class="project" style="margin-top: 20px;">
<div>
<label for="">Tarih</label>
</div>
<input type="text" class="form-control" name="expiry" id="expiry">
</div>
<div class="project" style="margin-top: 20px;">
<div>
<label for="">Güvenlik Kodu</label>
</div>
<input type="text" class="form-control" name="cvc" id="cvc">
</div>
<script>
var card = new Card({
form: 'form'
, container: '.card-wrapper',
messages: {
validDate: 'expire\ndate'
, monthYear: 'mm/yy'
}
});
</script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<script>
var $form = $("form")
, $successMsg = $(".alert");
$.validator.addMethod("letters", function(value, element) {
return this.optional(element) || value == value.match(/^[a-zA-Z\s]*$/);
});
$form.validate({
rules: {
cvc: {
required: true
, minlength: 3
, maxlength: 3
}
, mentor_time: {
required: true
}
, expiry: {
required: true
}
, name: {
required: true
}
, number: {
required: true
}
}
, messages: {
cvc: "3 haneli güvenlik kodunu giriniz."
, email: "Please specify a valid email address"
, mentor_time: "Görüşme saatini seçiniz."
, expiry: "Tarih bilgini giriniz."
, name: "Kartın üzerindeki ismi giriniz."
, number: "Kart bilgisini giriniz."
}
});
</script>
</fieldset>
Controller içinde
$randone = rand();
$randtwo = rand();
$month = substr($dataresponse->expiry, 0, 2);
$year = substr($dataresponse->expiry, -5);
$cardnumber = str_replace(" ", "", $dataresponse->number);
$cvc = $dataresponse->cvc;
$mentorprice = DB::table('mentors')->where('mentor_id', $mentoruser_id)->first()->mentorprice;
$mentoruser_id = DB::table('mentors')->where('mentor_id', $mentoruser_id)->first()->user_id;
$options = new \Iyzipay\Options();
$options->setApiKey("sandbox-");
$options->setSecretKey("sandbox-");
$options->setBaseUrl("https://sandbox-api.iyzipay.com");
$request = new \Iyzipay\Request\CreatePaymentRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPrice("1");
$request->setPaidPrice("1.2");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$request->setInstallment(1);
$request->setBasketId("B67832");
$request->setPaymentChannel(\Iyzipay\Model\PaymentChannel::WEB);
$request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);
$request->setCallbackUrl("http://localhost:8000/dsecurtiy?message=$dataresponse->mentor_message&time=$dataresponse->mentor_time");
$paymentCard = new \Iyzipay\Model\PaymentCard();
$paymentCard->setCardHolderName("John Doe");
$paymentCard->setCardNumber("5528790000000008");
$paymentCard->setExpireMonth("12");
$paymentCard->setExpireYear("2030");
$paymentCard->setCvc("123");
$paymentCard->setRegisterCard(0);
$request->setPaymentCard($paymentCard);
$buyer = new \Iyzipay\Model\Buyer();
$buyer->setId("BY789");
$buyer->setName("John");
$buyer->setSurname("Doe");
$buyer->setGsmNumber("+905350000000");
$buyer->setEmail("email@email.com");
$buyer->setIdentityNumber("74300864791");
$buyer->setLastLoginDate("2015-10-05 12:43:35");
$buyer->setRegistrationDate("2013-04-21 15:12:09");
$buyer->setRegistrationAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$buyer->setIp("85.34.78.112");
$buyer->setCity("Istanbul");
$buyer->setCountry("Turkey");
$buyer->setZipCode("34732");
$request->setBuyer($buyer);
$shippingAddress = new \Iyzipay\Model\Address();
$shippingAddress->setContactName("Jane Doe");
$shippingAddress->setCity("Istanbul");
$shippingAddress->setCountry("Turkey");
$shippingAddress->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$shippingAddress->setZipCode("34742");
$request->setShippingAddress($shippingAddress);
$billingAddress = new \Iyzipay\Model\Address();
$billingAddress->setContactName("Jane Doe");
$billingAddress->setCity("Istanbul");
$billingAddress->setCountry("Turkey");
$billingAddress->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$billingAddress->setZipCode("34742");
$request->setBillingAddress($billingAddress);
$basketItems = array();
$firstBasketItem = new \Iyzipay\Model\BasketItem();
$firstBasketItem->setId("BI101");
$firstBasketItem->setName("Binocular");
$firstBasketItem->setCategory1("Collectibles");
$firstBasketItem->setCategory2("Accessories");
$firstBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$firstBasketItem->setPrice("0.3");
$basketItems[0] = $firstBasketItem;
$secondBasketItem = new \Iyzipay\Model\BasketItem();
$secondBasketItem->setId("BI102");
$secondBasketItem->setName("Game code");
$secondBasketItem->setCategory1("Game");
$secondBasketItem->setCategory2("Online Game Items");
$secondBasketItem->setItemType(\Iyzipay\Model\BasketItemType::VIRTUAL);
$secondBasketItem->setPrice("0.5");
$basketItems[1] = $secondBasketItem;
$thirdBasketItem = new \Iyzipay\Model\BasketItem();
$thirdBasketItem->setId("BI103");
$thirdBasketItem->setName("Usb");
$thirdBasketItem->setCategory1("Electronics");
$thirdBasketItem->setCategory2("Usb / Cable");
$thirdBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$thirdBasketItem->setPrice("0.2");
$basketItems[2] = $thirdBasketItem;
$request->setBasketItems($basketItems);
$payment = \Iyzipay\Model\ThreedsInitialize::create($request, $options);
print_r($payment->getHtmlContent());
Burada yönlendirmek istediğin url içinde
$options = new \Iyzipay\Options();
$options->setApiKey("sandbox-");
$options->setSecretKey("sandbox-);
$options->setBaseUrl("https://sandbox-api.iyzipay.com");
$request = new \Iyzipay\Request\CreateThreedsPaymentRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("$responsedata->conversationId");
$request->setPaymentId("$responsedata->paymentId");
$request->setConversationData("$responsedata->conversationData");
$threedsPayment = \Iyzipay\Model\ThreedsPayment::create($request, $options);
if($threedsPayment->getStatus() == "success"){
echo $_GET['message'].'<br>';
echo $_GET['time'].'<br>';
}
else {
return redirect('/mentor-bul');
}
Benden bu kadar 🙂 , kolay gelsin.