public function setUp() { parent::setUp(); Payment::config()->allowed_gateways = array('PayPal_Express', 'PaymentExpress_PxPay', 'Manual', 'Dummy'); Payment::config()->parameters = array('PaymentExpress_PxPay' => array('username' => 'EXAMPLEUSER', 'password' => '235llgwxle4tol23l')); //set up a payment here to make tests shorter $this->payment = Payment::create()->setGateway("Dummy")->setAmount(1222)->setCurrency("GBP"); PaymentService::set_http_client($this->getHttpClient()); PaymentService::set_http_request($this->getHttpRequest()); }
public function setUp() { parent::setUp(); ShopTest::setConfiguration(); //set supported gateways Payment::config()->allowed_gateways = array('Dummy', 'Manual', 'PaymentExpress_PxPay', 'PaymentExpress_PxPost'); PaymentService::set_http_client($this->getHttpClient()); PaymentService::set_http_request($this->getHttpRequest()); //publish products $this->objFromFixture("Product", "socks")->publish('Stage', 'Live'); $this->objFromFixture("CheckoutPage", "checkout")->publish('Stage', 'Live'); $this->objFromFixture("CartPage", "cart")->publish('Stage', 'Live'); }
public function __construct($controller, $name, DataObjectInterface $payable, $amount) { if (!is_numeric($amount)) { throw new InvalidArgumentException("Amount must be numeric"); } $record = new Page(array('ID' => -1, 'Title' => $controller->Title, 'ParentID' => $controller->ID, 'URLSegment' => $name)); parent::__construct($record); $this->payable = $payable; $this->amount = $amount; //get currency from defaults $defaults = Payment::config()->defaults; if (isset($defaults['MoneyCurrency'])) { $this->currency = $defaults['MoneyCurrency']; } $this->successurl = $controller->Link(); }
/** * Helper function for logging gateway requests */ protected function logToFile($data, $type = "") { if ($logstyle = Payment::config()->file_logging) { $title = $type . " (" . $this->payment->Gateway . ")"; if ($logstyle === "verbose") { Debug::log($title . "\n\n" . print_r($data, true)); } elseif ($logstyle) { Debug::log(implode(", ", array($title, isset($data['Message']) ? $data['Message'] : " ", isset($data['Code']) ? $data['Code'] : " "))); } } }
/** * Get the gateway config-parameters. * * @param string $gateway the gateway name * @return array|null gateway parameters */ public static function getParameters($gateway) { $params = \Payment::config()->parameters; if (isset($params[$gateway])) { \Deprecation::notice('3.0', 'Please refrain from setting Gateway parameters under Payment. ' . 'Use GatewayInfo instead (see docs).'); return $params[$gateway]; } $params = self::getConfigSetting($gateway, 'parameters'); return is_array($params) ? $params : null; }
public function setConfig($config) { $this->payment = new Payment(); $this->payment->config($config); }
public function setUpOnce() { //add reverse has_one relation to Payment for Payable Payment::config()->has_one = array("Payable" => "PaymentControllerTest_Payable"); parent::setUpOnce(); }
/** * 支付响应 * * @param string $adapter * @return Payment_Respond_Abstract * @throws Exception */ protected function _respond($adapter) { if (empty($adapter)) { throw new Exception('发生错误'); } Payment::log($adapter); $config = Payment::config($adapter); // 读取配置 $respond = Payment::respond($adapter); // 创建支付响应实例 $respond->set_key($config->pay_key)->parse($_REQUEST); if ($respond->is_paid() or $respond->is_success()) { $order_sn = $order_merged_id = $respond->get_id(); // 获取订单编号 // 判断存在 $row = DB::select('*')->from('imgup_upgrade')->where('orderno', '=', $order_sn)->fetch_row(); $uid = (int) $row['uid']; if (empty($row)) { throw new Exception('订单号不存在!'); } else { if ($row['status'] == 1) { return; } if ($row['month'] == 12) { $fee_day = DB::select(DB::expr("(fee_year / 365) AS count"))->from('imgup_group')->where('id', '=', $row['dest_group'])->execute()->get('count'); } else { $fee_day = DB::select(DB::expr("(fee_month / 30) AS count"))->from('imgup_group')->where('id', '=', $row['dest_group'])->execute()->get('count'); } # 修改订单状态 $order_data = array('status' => 1, 'submit_time' => date('Y-m-d H:i:s'), 'operator' => $respond->get_pay_user(), 'trade_no' => $respond->get_payment_no(), 'notify_id' => $respond->get_id()); DB::update('imgup_upgrade')->set($order_data)->where('id', '=', $row['id'])->execute(); $user_time = ORM::factory('user', $uid)->expire_time; $order_data = array('status' => 'approved', 'expire_time' => strtotime($row['will_exceed']), 'fee_day' => round($fee_day, 2), 'rank' => $row['dest_group']); // 赠送空间数 switch ($row['dest_group']) { default: $gift = 0; break; } $order_data['gift'] = $gift; DB::update('users')->set($order_data)->where('uid', '=', $row['uid'])->execute(); # 处理屏蔽表数据 DB::update('imgup_deny_user')->set(array('status' => 0))->where('uid', '=', $row['uid'])->execute(); # 发送通知邮件 $ret = DB::select('username', 'email', 'expire_time')->from('users')->where('uid', '=', $row['uid'])->fetch_row(); $receiver = $ret['username']; $receiver_email = $ret['email']; $exceed_date = date("Y-m-d", strtotime($ret['expire_time'])); $ret = DB::select('group_name')->from('imgup_group')->where('id', '=', $row['current_group'])->fetch_row(); $v_email = $ret['group_name'] . ','; $ret = DB::select('group_name')->from('imgup_group')->where('id', '=', $row['dest_group'])->fetch_row(); $v_email = $v_email . $ret['group_name'] . ',' . $row['will_exceed']; $email_template = 'F1'; $this->send_email($email_template, $receiver, $receiver_email, $v_email); # 开放屏蔽帐号 $disks = ORM::factory('img_disk')->find_all(); foreach ($disks as $disk) { $dir = '/server/wal8/www/' . $disk->disk_name . '/' . ORM::factory('user', $row['uid'])->save_dir; if (@substr(sprintf('%o', fileperms($dir)), -4) == '0000') { @chmod($dir, 0777); } } } return $respond; } else { throw new Exception('支付失败,请联系联系客服..'); } }