ConfigService.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace addons\Sicpay\common\services;
  3. use addons\Sicpay\common\models\SicpayConfig;
  4. use addons\Sicpay\common\sdk\PayCore;
  5. use common\models\user\User;
  6. use yii\helpers\Json;
  7. class ConfigService extends BaseService
  8. {
  9. /**
  10. * 新增修改
  11. * @param array $data
  12. * @return bool
  13. */
  14. public function save(array $data):bool {
  15. $id = $data['id'] ?? 0;
  16. $data['pay_way'] = !empty($data['pay_way']) ? Json::encode($data['pay_way']) : "[]";
  17. $data['alipay'] = !empty($data['alipay']) ? Json::encode($data['alipay']) : "[]";
  18. $data['wechat'] = !empty($data['wechat']) ? Json::encode($data['wechat']) : "[]";
  19. $data['bank'] = !empty($data['bank']) ? Json::encode($data['bank']) : "[]";
  20. $model = $id > 0 ? SicpayConfig::findOne($id) : new SicpayConfig();
  21. if($model->load($data,"") && $model->save()){
  22. return true;
  23. }
  24. $msg = array_values($model->getErrors())[0] ??"未知错误";
  25. return $this->error($msg);
  26. }
  27. /**
  28. * 获取配置文件信息
  29. * @param $mall_id
  30. * @return array|\yii\db\ActiveRecord|null
  31. */
  32. public function getConfig($mall_id){
  33. return SicpayConfig::getConfig($mall_id);
  34. }
  35. /**
  36. * 获取对应的支付方式
  37. * @param $platform app h5 wechat mp-wx
  38. */
  39. public function getPayWay($mall_id,$platform){
  40. $config = SicpayConfig::getConfig($mall_id);
  41. $way = [];
  42. switch ($platform){
  43. case User::PLATFORM_APP:
  44. // app 场景,返回 支付宝app 微信app 云闪付app支付
  45. $way = $config->_get_app_way();
  46. break;
  47. case User::PLATFORM_H5:
  48. // h5 场景 返回 支付宝h5 微信h5 银联快捷支付
  49. $way = $config->_get_h5_way();
  50. break;
  51. case User::PLATFORM_WECHAT:
  52. // 公众号 场景 返回 微信公众号支付
  53. $way = $config->_get_wechat_way();
  54. break;
  55. case User::PLATFORM_MP_WX:
  56. // 小程序 场景 返回 微信小程序
  57. $way = $config->_get_mp_way();
  58. break;
  59. }
  60. $api_url = \Yii::$app->services->setting->platform->get('system.api_url');
  61. foreach ($way as &$item) {
  62. $item['img'] = $api_url.'/'.$item['img'];
  63. }
  64. return $way;
  65. }
  66. public function getPayCore($mall_id){
  67. $config = SicpayConfig::getConfig($mall_id);
  68. return new PayCore($config->toArray());
  69. }
  70. }