|
|
@@ -23,60 +23,62 @@ class GiftCardQrCodeService
|
|
|
{
|
|
|
try {
|
|
|
// 小程序页面路径,根据实际情况修改
|
|
|
- $page = 'pages/gift-card/exchange';
|
|
|
+ $page = 'pages/gift-card/exchange?';
|
|
|
$scene = "cardNo={$cardNo}&cardPass={$cardPass}";
|
|
|
|
|
|
// 生成小程序码
|
|
|
$config = WeChatConfigService::getMnpConfig();
|
|
|
|
|
|
$app = Factory::miniProgram($config);
|
|
|
-
|
|
|
- try {
|
|
|
- $accessToken = $app->access_token->getToken()['access_token'];
|
|
|
- $url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token={$accessToken}";
|
|
|
-
|
|
|
- $data = [
|
|
|
- 'path' => $page . '?' . $scene,
|
|
|
- 'width' => 280
|
|
|
- ];
|
|
|
-
|
|
|
- // 使用Guzzle HTTP客户端
|
|
|
- $client = new \GuzzleHttp\Client();
|
|
|
- $response = $client->post($url, [
|
|
|
- 'json' => $data,
|
|
|
- 'headers' => [
|
|
|
- 'Content-Type' => 'application/json'
|
|
|
- ]
|
|
|
- ]);
|
|
|
- return $response;
|
|
|
- // 检查响应
|
|
|
- if ($response->getStatusCode() === 200) {
|
|
|
- $body = $response->getBody();
|
|
|
- // 这里$body就是二维码的二进制数据
|
|
|
- } else {
|
|
|
- Log::error('微信API调用失败', ['status' => $response->getStatusCode()]);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- } catch (\Exception $e2) {
|
|
|
- Log::error('HTTP客户端调用失败', ['error' => $e2->getMessage()]);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if (!($response instanceof \EasyWeChat\Kernel\Http\StreamResponse)) {
|
|
|
- Log::error('生成小程序码失败', [
|
|
|
- 'response' => $response,
|
|
|
- 'response_type' => gettype($response),
|
|
|
- 'page' => $page,
|
|
|
- 'scene' => $scene
|
|
|
- ]);
|
|
|
- return false;
|
|
|
- }
|
|
|
+ $accessToken = $app->access_token->getToken()['access_token'];
|
|
|
+ $IMG = getQrCode($accessToken, $page.$scene, 'uploads/qrcode/', $cardPass);
|
|
|
+// $result = $app->app_code->getUnlimited($page = 'pages/index/index', $width = 430);
|
|
|
+// try {
|
|
|
+// $accessToken = $app->access_token->getToken()['access_token'];
|
|
|
+// $url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token={$accessToken}";
|
|
|
+//
|
|
|
+// $data = [
|
|
|
+// 'path' => $page . '?' . $scene,
|
|
|
+// 'width' => 280
|
|
|
+// ];
|
|
|
+//
|
|
|
+// // 使用Guzzle HTTP客户端
|
|
|
+// $client = new \GuzzleHttp\Client();
|
|
|
+// $response = $client->post($url, [
|
|
|
+// 'json' => $data,
|
|
|
+// 'headers' => [
|
|
|
+// 'Content-Type' => 'application/json'
|
|
|
+// ]
|
|
|
+// ]);
|
|
|
+// return $response;
|
|
|
+// // 检查响应
|
|
|
+// if ($response->getStatusCode() === 200) {
|
|
|
+// $body = $response->getBody();
|
|
|
+// // 这里$body就是二维码的二进制数据
|
|
|
+// } else {
|
|
|
+// Log::error('微信API调用失败', ['status' => $response->getStatusCode()]);
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+//
|
|
|
+// } catch (\Exception $e2) {
|
|
|
+// Log::error('HTTP客户端调用失败', ['error' => $e2->getMessage()]);
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (!($response instanceof \EasyWeChat\Kernel\Http\StreamResponse)) {
|
|
|
+// Log::error('生成小程序码失败', [
|
|
|
+// 'response' => $response,
|
|
|
+// 'response_type' => gettype($response),
|
|
|
+// 'page' => $page,
|
|
|
+// 'scene' => $scene
|
|
|
+// ]);
|
|
|
+// return false;
|
|
|
+// }
|
|
|
// if (!($response instanceof \EasyWeChat\Kernel\Http\StreamResponse)) {
|
|
|
// Log::error('生成小程序码失败', ['response' => $response]);
|
|
|
// return false;
|
|
|
// }
|
|
|
- return $response;
|
|
|
+ return $IMG;
|
|
|
// 保存到本地临时目录
|
|
|
$saveDir = 'resource/image/gift_card/qr_code/';
|
|
|
if (!file_exists($saveDir)) {
|