PaymentService.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace app\api\service\order;
  3. use app\common\library\alipay\AliPay;
  4. use app\common\library\easywechat\AppOpen;
  5. use app\common\library\easywechat\AppWx;
  6. use app\common\library\easywechat\AppMp;
  7. use app\common\library\easywechat\WxPay;
  8. use app\common\model\order\Order;
  9. class PaymentService
  10. {
  11. /**
  12. * 构建微信支付
  13. */
  14. public static function wechat(
  15. $user,
  16. $orderId,
  17. $orderNo,
  18. $payPrice,
  19. $orderType,
  20. $pay_source
  21. )
  22. {
  23. // 统一下单API
  24. if($pay_source == 'wx'){
  25. $app = AppWx::getWxPayApp($user['app_id']);
  26. $open_id = $user['open_id'];
  27. }else if($pay_source == 'mp'){
  28. $app = AppMp::getWxPayApp($user['app_id']);
  29. $open_id = $user['mpopen_id'];
  30. } else if($pay_source == 'payH5'){
  31. $app = AppMp::getWxPayApp($user['app_id']);
  32. $open_id = '';
  33. } else if($pay_source == 'app'){
  34. $app = AppOpen::getWxPayApp($user['app_id']);
  35. $open_id = $user['appopen_id'];
  36. }
  37. // $order_no = date('YmdHis').rand(10,99);
  38. // (new Order)->where('order_id',$orderId)->update(['order_no'=>$order_no]);
  39. $WxPay = new WxPay($app);
  40. $payment = $WxPay->unifiedorder($orderNo, $open_id, $payPrice, $orderType, $pay_source);
  41. if($pay_source == 'wx'){
  42. return $payment;
  43. }else if($pay_source == 'mp'){
  44. $jssdk = $app->jssdk;
  45. return $jssdk->bridgeConfig($payment['prepay_id']);
  46. }else if($pay_source == 'payH5'){
  47. return $payment;
  48. }else if($pay_source == 'app'){
  49. return $payment;
  50. }
  51. return false;
  52. }
  53. /**
  54. * 构建支付宝支付
  55. */
  56. public static function alipay(
  57. $user,
  58. $orderId,
  59. $orderNo,
  60. $payPrice,
  61. $orderType,
  62. $pay_source
  63. )
  64. {
  65. $AliPay = new AliPay();
  66. $payment = $AliPay->unifiedorder($orderNo, $payPrice, $orderType, $pay_source);
  67. if($pay_source == 'payH5'){
  68. return $payment;
  69. }
  70. return false;
  71. }
  72. }