예제 #1
0
 /**
  * 设置订单
  */
 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;
     }
 }
예제 #2
0
$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));