My SMM panel
 
 
 
 
 
 

62 lines
1.8 KiB

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Stripe\Stripe;
  5. use Stripe\Customer;
  6. use Stripe\PaymentIntent;
  7. use Stripe\PaymentMethod;
  8. use Illuminate\Support\Facades\Log;
  9. use Illuminate\Support\Facades\Auth;
  10. use App\Models\Transaction;
  11. class BillingController extends Controller
  12. {
  13. //Expects an array 'packs' representing the amount of each multiple of credits.
  14. //This controller should have a way of figuring out how much of each pack
  15. //was bought later.
  16. //Should validate that all amounts are positive integers in a reasonable range
  17. public function secret(Request $request) {
  18. Stripe::setApiKey(env('STRIPE_SECRET'));
  19. Log::debug($request->packs);
  20. $amount = $request->packs[ 'credits10' ]*1099 +
  21. $request->packs[ 'credits50' ]*5499 + $request->packs[ 'credits100' ]*10999
  22. + $request->packs[ 'credits1000' ]*101000;
  23. $transaction = new Transaction;
  24. $transaction->credits = $request->packs['credits10']*10 +
  25. $request->packs['credits50']*50 +
  26. $request->packs['credits[100]']*100 +
  27. $request->packs['credits[1000]']*1000;
  28. $transaction->credits_extra =
  29. $request->packs['credits50']*5 +
  30. $request->packs['credits[100]']*10 +
  31. $request->packs['credits[1000]']*150;
  32. $transaction->user_id = Auth::user()->id;
  33. $transaction->charge = $amount;
  34. $transaction->status = 'processing';
  35. $transaction->completed = false;
  36. $transaction->save();
  37. $intent = PaymentIntent::create([
  38. 'amount' => $amount,
  39. 'currency' => 'usd',
  40. 'customer' => Auth::user()->customer_id,
  41. 'metadata' => ['transaction_id' => $transaction->id]
  42. ]);
  43. return $intent->client_secret;
  44. }
  45. public function getCards() {
  46. Stripe::setApiKey(env('STRIPE_SECRET'));
  47. return PaymentMethod::all([
  48. 'customer' => Auth::user()->customer_id,
  49. 'type' => 'card'
  50. ]);
  51. }
  52. }