AliOrderArousePay.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 AliOrderArousePay extends OrderArousePayAbstract
  8. {
  9. public function arouse(array $data)
  10. {
  11. $pay_merchant_id = (int)$data['pay_merchant_id'];
  12. // 订单描述,针对聚裕的包无法支付的问题(注册时传入了仙女阅读的包名,导致支付时取的支付信息不一致)
  13. $package = getProp($data, 'package');
  14. if ($package && $package === 'com.juyu.kuaiying.rmyq') {
  15. $body = $this->getSubjectNameByPackage($package);
  16. } else {
  17. $body = $this->getSubjectName($data['distribution_channel_id']);
  18. }
  19. $ali_param = [
  20. 'body' => '小说阅读',
  21. 'subject' => $body,
  22. 'out_trade_no' => $data['trade_no'],
  23. 'timeout_express' => '90m',
  24. 'total_amount' => $data['price'] / 100,
  25. 'product_code' => 'QUICK_WAP_WAY',
  26. 'return_url' => '',
  27. 'type' => $data['type'],
  28. 'pay_merchant_id' => $pay_merchant_id,
  29. ];
  30. myLog('aliPay')->info('arouse', compact('data', 'ali_param'));
  31. try {
  32. $config = PayMerchantService::findAliPayConfig($pay_merchant_id);
  33. $pay = PayFactory::aliPay($config);
  34. $result = $pay->send($ali_param);
  35. myLog('aliPay')->info('result', compact('result'));
  36. return $result;
  37. } catch (Exception $e) {
  38. Log::error("创建支付宝订单失败: " . $e->getTraceAsString());
  39. }
  40. }
  41. }