/** * 设置订单 */ public function setOrder(Order $order) { if (null !== $order) { try { $order->checkParams(); } catch (Exception $e) { throw new PaymentException($e->getMessage()); } if (!$order->hasParams('nonce_str')) { $order->nonce_str(Util::randomString()); } if (!$order->hasParams('spbill_create_ip')) { $order->spbill_create_ip(Util::clientIP()); } if (!$order->hasParams('trade_type')) { if (!$order->hasParams('openid')) { throw new PaymentException('openid is required'); } $order->trade_type('JSAPI'); } $this->order = $order; } }
$businessA->mch_id(MCHID); $businessA->mch_key(MCHKEY); // 可以配置多个商户 // $businessB = new Business(); // $businessB->appid(APPID); // $businessB->appsecret(APPSECRET); // $businessB->mch_id(MCHID); // $businessB->mch_key(MCHKEY); /** * 第 2 步:定义订单(可链式调用) */ $order = new Order(); $order->body('iphone 6 plus'); $order->out_trade_no(date('Y-m-dHis') . mt_rand(10000, 99999)); $order->total_fee('1'); $order->trade_type('NATIVE'); $order->notify_url('Your notify url'); /** * 第 3 步:统一下单 */ $unifiedorder = new Unifiedorder($businessA, $order); $response = $unifiedorder->getResponse(); if (!isset($response['code_url'])) { exit($e->getMessage()); } /** * 生成支付二维码 * See https://github.com/endroid/QrCode */ $qrCode = new QrCode(); $qrCode->setText($response['code_url'])->setSize(200)->setPadding(10)->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0));