Beispiel #1
0
 public function update(array $update = [], $updateSubscriptions = false)
 {
     if (!$this->id) {
         throw new LaraMillException('Offer ID is needed to update offer.', 403);
     }
     $offer = new \Paymill\Models\Request\Offer();
     $offer->setId($this->id)->setUpdateSubscriptions($updateSubscriptions);
     if (isset($update['amount'])) {
         $offer->setAmount($update['amount']);
     }
     if (isset($update['currency'])) {
         $offer->setCurrency($update['currency']);
     }
     if (isset($update['interval'])) {
         $offer->setInterval($update['interval']);
     }
     if (isset($update['name'])) {
         $offer->setName($update['name']);
     }
     return $this->request->update($offer);
 }
define('CUSTOMER_EMAIL', 'SOME_TEST_EMAIL');
require 'vendor/autoload.php';
if (isset($_POST['paymillToken'])) {
    $service = new Paymill\Request(PAYMILL_API_KEY);
    $client = new Paymill\Models\Request\Client();
    $payment = new Paymill\Models\Request\Payment();
    $offer = new Paymill\Models\Request\Offer();
    $subscription = new Paymill\Models\Request\Subscription();
    try {
        $client->setEmail(CUSTOMER_EMAIL);
        $client->setDescription('This is a Testuser.');
        $clientResponse = $service->create($client);
        $payment->setClient($clientResponse->getId());
        $payment->setToken($_POST['paymillToken']);
        $paymentResponse = $service->create($payment);
        $offer->setAmount($_POST['amount'])->setCurrency($_POST['currency'])->setInterval($_POST['interval'])->setName($_POST['offer-name']);
        $offerResponse = $service->create($offer);
        $subscription->setClient($clientResponse->getId());
        $subscription->setPayment($paymentResponse->getId());
        $subscription->setOffer($offerResponse->getId());
        $subscriptionResponse = $service->create($subscription);
        $title = "<h1>We appreciate your order!</h1>";
        $result = print_r($subscriptionResponse, true);
    } catch (\Paymill\Services\PaymillException $e) {
        $title = "<h1>An error has occoured!</h1>";
        $result = print_r($e->getResponseCode(), true) . " <br />" . print_r($e->getResponseCode(), true) . " <br />" . print_r($e->getErrorMessage(), true);
    }
}
?>
    </head>
    <body>
Beispiel #3
0
 /**
  * Allow admin to create new offers.
  *
  * @param CreateNewOfferRequest $request
  */
 public function create(CreateNewOfferRequest $request)
 {
     // Create new paymill request
     $paymillRequest = new \Paymill\Request(env('PAYMILL_API_KEY'));
     $currency = 'EUR';
     $interval = '1 MONTH';
     // Create new offer
     $paymillOffer = new \Paymill\Models\Request\Offer();
     $paymillOffer->setAmount($request->get('offer_amount'))->setCurrency($currency)->setInterval($interval)->setName($request->get('offer_name'));
     $response = $paymillRequest->create($paymillOffer);
     $promoCode = $request->get('promo_code');
     $enableOffer = $request->get('enable_offer');
     $useOnSignUp = $request->get('use_on_sign_up');
     // If this offer will be used on sign up make sure it is the only one
     if ($useOnSignUp) {
         Offer::where('use_on_sign_up', true)->update(['use_on_sign_up' => false]);
         $promoCode = '';
         $enableOffer = false;
     }
     // An enabled offer can not be used on sign up
     if ($enableOffer) {
         $useOnSignUp = false;
     }
     // Save in database
     Offer::create(['paymill_offer_id' => $response->getId(), 'name' => $request->get('offer_name'), 'amount' => $request->get('offer_amount'), 'interval' => $interval, 'currency' => $currency, 'promo_code' => $promoCode, 'use_on_sign_up' => (bool) $useOnSignUp, 'disabled' => !(bool) $enableOffer]);
     // Return response
     $ajaxResponse = new AjaxResponse();
     $ajaxResponse->setSuccessMessage(trans('offers.offer_created'));
     return response($ajaxResponse->get())->header('Content-Type', 'application/json');
 }