WxOrderArousePay.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Modules\Trade\Pay;
  3. use App\Libs\Pay\PayFactory;
  4. use App\Modules\Trade\Services\PayMerchantService;
  5. use Exception;
  6. use Illuminate\Support\Facades\Log;
  7. class WxOrderArousePay extends OrderArousePayAbstract
  8. {
  9. public function arouse(array $data)
  10. {
  11. $pay_merchant_id = (int)$data['pay_merchant_id'];
  12. $config = PayMerchantService::findPayConfig($pay_merchant_id);
  13. $pay = PayFactory::official($config);
  14. // 订单描述,针对聚裕的包无法支付的问题(注册时传入了仙女阅读的包名,导致支付时取的支付信息不一致)
  15. $package = getProp($data, 'package');
  16. if ($package && $package === 'com.juyu.kuaiying.rmyq') {
  17. $body = $this->getSubjectNameByPackage($package);
  18. } else {
  19. $body = $this->getSubjectName($data['distribution_channel_id']);
  20. }
  21. try {
  22. $payOrder = [
  23. 'trade_type' => $data['trade_type'], // 交易类型
  24. 'trade_no' => $data['trade_no'], // 订单号
  25. 'price' => $data['price'], // 订单金额,单位:分
  26. 'body' => $body, // 订单描述
  27. 'create_ip' => _getIp(), // 支付人的 IP
  28. 'remark' => $pay_merchant_id
  29. ];
  30. $result = $pay->send($payOrder);
  31. myLog('wxPay')->info('arouse', compact('data', 'payOrder', 'result'));
  32. if ($result) {
  33. return $result;
  34. } else {
  35. Log::error("创建微信订单失败: " . json_encode($result));
  36. return false;
  37. }
  38. } catch (Exception $e) {
  39. Log::error("创建微信订单失败: " . $e->getMessage());
  40. return false;
  41. }
  42. }
  43. }