public function actionWxpay($order)
{
$model = Order::findOne(['order_sn' => $order, 'status' => Order::STATUS_UNPAID]);
if (!$model) {
throw new BadRequestHttpException('参数错误!');
}
require_once Yii::getAlias('@vendor') . "/payment/wxpay/lib/WxPay.Api.php";
require_once Yii::getAlias('@vendor') . "/payment/wxpay/lib/WxPay.JsApiPay.php";
try {
$tools = new \JsApiPay();
$openId = $tools->GetOpenid();
$input = new \WxPayUnifiedOrder();
$input->SetBody('笑e购(xiaoego.com)订单,' . $model->description);
$input->SetOut_trade_no($model->order_sn);
$input->SetTotal_fee(bcmul($model->real_fee, 100));
$input->SetTime_start(date("YmdHis", $model->created_at));
$input->SetTime_expire(date("YmdHis", $model->timeout));
$input->SetNotify_url(Url::to(['/payment/wxpay-order-notify'], true));
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$orderform = \WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($orderform);
} catch (\Exception $e) {
Yii::error("用户请求支付订单失败!订单号:{$order},支付平台:wxpay");
throw new BadRequestHttpException($e->getMessage());
}
Yii::info("用户请求支付订单成功!订单号:{$order},支付平台:wxpay");
return $this->renderPartial('wxpay', ['model' => $model, 'jsApiParameters' => $jsApiParameters]);
}