public function __construct($controller, $name, $order_id) { $Order = Order::get_by_id("Order", $order_id); /* Fields */ $fields = FieldList::create(HiddenField::create("business", "business", DataObject::get_one("Gateway_PayPal")->EmailAddress), HiddenField::create("cmd", "cmd", "_xclick"), HiddenField::create("notify_url", "notify_url", Director::absoluteURL(Store_OrderController::create()->link() . "/payment/response?gateway=Gateway_PayPal")), HiddenField::create("custom", "custom", $order_id), HiddenField::create("item_name", "item_name", "Order No. " . $order_id . " @ " . StoreSettings::get_settings()->StoreSettings_StoreName), HiddenField::create("amount", "amount", Order::create()->calculateOrderTotal($Order)), HiddenField::create("currency_code", "currency_code", DataObject::get_one("StoreCurrency", "(`SystemCreated`='1')")->Code), HiddenField::create("no_note", "no_note", "1"), HiddenField::create("no_shipping", "no_shipping", "1"), HiddenField::create("return", "return", Director::absoluteURL(Store_OrderController::create()->link()) . "/payment/success?gateway=Gateway_PayPal"), HiddenField::create("rm", "rm", "2"), HiddenField::create("cbt", "cbt", "Return to " . StoreSettings::get_settings()->StoreSettings_StoreName), HiddenField::create("cancel_return", "cancel_return", Director::absoluteURL(Store_OrderController::create()->link()) . "/payment/cancelled?gateway=Gateway_PayPal")); /* Actions */ $actions = FieldList::create(FormAction::create('', 'If you are not transferred to PayPal in 5 seconds, click here.')); /* Required Fields */ $required = new RequiredFields(array("business", "cmd", "notify_url", "item_name", "amount", "currency_code")); /* * Now we create the actual form with our fields and actions defined * within this class. */ return parent::__construct($controller, $name, $fields, $actions, $required); }
/** * Return the PayPal Payments Standard Form * * @param Int $order_id The ID of the order we are collecting payment for. * @return Form */ public function PayPalForm($order_id) { $Form = Gateway_PayPal_Form::create(Store_OrderController::create(), "PayPalForm", $order_id); /* Set Form Action */ $URL = "https://www.paypal.com/cgi-bin/webscr"; $SandboxURL = "https://www.sandbox.paypal.com/cgi-bin/webscr"; $Form->setFormAction(DataObject::get_one("Gateway_PayPal")->Sandbox ? $SandboxURL : $URL); $Form->setFormMethod("POST"); return $Form; }
/** * ACTION /order * Passes the control to the Controller 'Store_OrderController' */ public function order() { return Store_OrderController::create()->handleRequest($this->request, $this->model); }