AliOrderArousePay.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. try {
  31. $config = PayMerchantService::findAliPayConfig($pay_merchant_id);
  32. $pay = PayFactory::aliPay($config);
  33. $result = $pay->send($ali_param);
  34. return $result;
  35. } catch (Exception $e) {
  36. Log::error("创建支付宝订单失败: " . $e->getTraceAsString());
  37. }
  38. }
  39. }