lostyazilim
tr.link

Shopier Entegrasyon Sorunu

2 Mesajlar 1.365 Okunma
lstbozum
tr.link

MehmetFazilK MehmetFazilK - Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 25 / E
  • Meslek Girişimci
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 905
  • Beğeniler 198 / 255
  • Ticaret 30, (%100)
Merhaba arkadaşlar 1 shopier hesabına 2 site tanımladım 1.siteden bakiye yüklendiğinde 1.siteye yönlendiriyor, 2.siteden bakiye yüklenince gene 1.siteye yönlendiriyor doğal olarak 2.siteye bakiye yüklenmiyor. Shopier üzerinden tanımlarken her site için ayrı callback girdim. Bu sorunu shopier desteğe ilettim şöyle bir cevap verdiler " E-ticaret panelinizde WooCommerce, Opencart vb. kullanıyorsanız) Websitesi indexi alanını 2nci siteniz için 2 olarak tanımlayınız. Bunların dışında bir yazılım kullanmaktaysanız, yazılımı tedareik ettiğiniz kurumdan destek almanız faydalı olacaktır."

Yazılım başka bir yazılım doğal olarak 2. falan derken ne demek istediler anlamadım bu konuda yardımcı olacabilecek var mı?

Kodlar bu şekilde yardımcı olacaksa

namespace App\Http\Controllers\User;

use App\Http\Controllers\Controller;
use App\OnlinePayment;
use App\PosMethod;
use App\Shopier;
use App\User;
use Illuminate\Http\Request;

/**
* Class OnlinePaymentController
* @package App\Http\Controllers\User
*/
class OnlinePaymentController extends Controller
{
/**
* OnlinePaymentController constructor.
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index()
{
$payments = OnlinePayment::where(['user_id' => auth()->id(), 'status' => 1])->get();
return view('user.online-payment.index', compact('payments'));
}

/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
* Yeni ödeme talebi eklenince değerler çoğul gönderilecektir.
* Çoğul gönderilen ödeme yöntemleri bir select yardımıyla kullanılacaktır.
* Alt yapı amacıyla şimdilik first metodu kullanılmaktadır.
*/
public function create()
{
$methods = PosMethod::where('status', 1)->first();
return view('user.online-payment.create', compact('methods'));
}

/**
* @param Request $request
* @param $name - get method
* @return \Illuminate\Http\RedirectResponse
*/
public function shopier(Request $request, $name) // yakalanan değer tek fonksiyon üstünden çoklu sanal pos entegrasyonuna altyapıdır. Şu an işlevsizdir.
{

$find = PosMethod::where('name', 'shopier')->first();
$request->validate([
'amount' => 'numeric|min:'.$find->minimum
], [
'amount.min' => 'Minimum ödeme tutarını hatalı girdiniz.',
'amount.numeric' => 'Ödeme yapabilmek için sayı girmelisiniz.',
]);

$request->merge(['user_id' => auth()->id()]);
/*
* PosMethod modelinin içerisinde Payment fonksiyonuyla OnlinePayment modeline aktarılır.
*/
$id = $find->Payment()->create($request->all());


$shopier = new Shopier($find->key, $find->secret);
$shopier->setBuyer([
'id' => auth()->id(),
'first_name' => auth()->user()->name, 'last_name' => '', 'email' => auth()->user()->email, 'phone' => '']);
$shopier->setOrderBilling([
'billing_address' => '',
'billing_city' => '',
'billing_country' => 'turkey',
'billing_postcode' => '',
]);
$shopier->setOrderShipping([
'shipping_address' => '',
'shipping_city' => '',
'shipping_country' => 'turkey',
'shipping_postcode' => '',
]);

if ($find->commission == 1) {
$commission = $request->amount*0.0499;
$service = $commission+0.49;
$kdv = $service*1.18;
$price = $kdv+$request->amount;
} else {
$price = $request->amount;
}

//dd($price);
die($shopier->run($id->id, $price, route('shopier.callback')));
//die($shopier->run(ORDER_ID, ORDER_AMOUNT, CALLBACK_URL));
}

/**
* @return \Illuminate\Http\RedirectResponse
*/
public function shopierNotify() {
$info = PosMethod::where('name', 'shopier')->first();

$status = $_POST["status"];
$db_id = $_POST["platform_order_id"];
$payment_id = $_POST["payment_id"];
$signature = $_POST["signature"];

$data = $_POST["random_nr"] . $_POST["platform_order_id"];
$signature = base64_decode($signature);
$expected = hash_hmac('SHA256', $data, $info->secret, true);

if ($signature == $expected) {
$status = strtolower($status);
if ($status == "success") {
$shopier = OnlinePayment::find($db_id);
if ($shopier->status == 0) {
$shopier->update(['status' => 1, 'payment_id' => $payment_id]);
$user_id = $shopier->user_id;
$amount = $shopier->amount;
User::find($user_id)->increment('amount', $amount);
return redirect()->route('user.home');
}
} else {
return redirect()->route('user.home');
}
} else {
return redirect()->route('user.home');
}
}
}
 

 

wmaraci
reklam

MehmetFazilK MehmetFazilK - Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 25 / E
  • Meslek Girişimci
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 905
  • Beğeniler 198 / 255
  • Ticaret 30, (%100)
'website_index' => 1, shopier entegrasyon kodları arasında böyle bir değer var buraya kaçıncı site ise onla değiştiriyorsunuz benimki 2. siteydi mesela o yüzden 'website_index' => 2, yaptım düzeldi
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al