getInitCore($orderNo, $total); $body['payer'] = ['openid' => $openId]; $body['scene_info'] = ['payer_client_ip' => $payer_client_ip]; $sign = $this->signature('POST', '/v3/pay/transactions/jsapi', $json = json_encode($body, JSON_UNESCAPED_UNICODE)); $client = new Client('api.mch.weixin.qq.com', 443, TRUE); $client->withAddedHeader('Authorization', $sign) ->withContentType('application/json')->withAddedHeader('User-Agent', 'application/json') ->withBody($json)->withAddedHeader("Accept", "*/*"); $proxyHost = $this->getConfig()->getProxyHost(); $proxyPort = $this->getConfig()->getProxyPort(); if (!empty($proxyHost) && $proxyPort > 0) { $client->withProxyHost($proxyHost)->withProxyPort($proxyPort); } $client->post('/v3/pay/transactions/jsapi'); $client->close(); $json = json_decode($client->getBody(), TRUE); if (!isset($json['prepay_id'])) { throw new Exception('微信支付调用失败'); } return $this->createResponse($json, $body); } }