| Conditions | 3 |
| Paths | 3 |
| Total Lines | 23 |
| Code Lines | 12 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | <?php |
||
| 29 | public function assembly(Rocket $rocket, Closure $next): Rocket |
||
| 30 | { |
||
| 31 | Logger::debug('[Wechat][Marketing][Transfer][DownloadReceiptPlugin] 插件开始装载', ['rocket' => $rocket]); |
||
| 32 | |||
| 33 | $downloadUrl = $rocket->getPayload()?->get('download_url') ?? null; |
||
| 34 | $config = get_wechat_config($rocket->getParams()); |
||
| 35 | |||
| 36 | if (Pay::MODE_SERVICE === ($config['mode'] ?? Pay::MODE_NORMAL)) { |
||
| 37 | throw new InvalidParamsException(Exception::PARAMS_PLUGIN_ONLY_SUPPORT_NORMAL_MODE, '参数异常: 下载电子回单,只支持普通商户模式,当前配置为服务商模式'); |
||
| 38 | } |
||
| 39 | |||
| 40 | if (empty($downloadUrl)) { |
||
| 41 | throw new InvalidParamsException(Exception::PARAMS_NECESSARY_PARAMS_MISSING, '参数异常: 下载电子回单,参数缺少 `download_url`'); |
||
| 42 | } |
||
| 43 | |||
| 44 | $rocket->setPayload([ |
||
| 45 | '_method' => 'GET', |
||
| 46 | '_url' => $downloadUrl, |
||
| 47 | ]); |
||
| 48 | |||
| 49 | Logger::info('[Wechat][Marketing][Transfer][DownloadReceiptPlugin] 插件装载完毕', ['rocket' => $rocket]); |
||
| 50 | |||
| 51 | return $next($rocket); |
||
| 52 | } |
||
| 54 |