| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- namespace addons\Sicpay\common\services;
- use addons\Sicpay\common\models\SicpayConfig;
- use addons\Sicpay\common\sdk\PayCore;
- use common\models\user\User;
- use yii\helpers\Json;
- class ConfigService extends BaseService
- {
- /**
- * 新增修改
- * @param array $data
- * @return bool
- */
- public function save(array $data):bool {
- $id = $data['id'] ?? 0;
- $data['pay_way'] = !empty($data['pay_way']) ? Json::encode($data['pay_way']) : "[]";
- $data['alipay'] = !empty($data['alipay']) ? Json::encode($data['alipay']) : "[]";
- $data['wechat'] = !empty($data['wechat']) ? Json::encode($data['wechat']) : "[]";
- $data['bank'] = !empty($data['bank']) ? Json::encode($data['bank']) : "[]";
- $model = $id > 0 ? SicpayConfig::findOne($id) : new SicpayConfig();
- if($model->load($data,"") && $model->save()){
- return true;
- }
- $msg = array_values($model->getErrors())[0] ??"未知错误";
- return $this->error($msg);
- }
- /**
- * 获取配置文件信息
- * @param $mall_id
- * @return array|\yii\db\ActiveRecord|null
- */
- public function getConfig($mall_id){
- return SicpayConfig::getConfig($mall_id);
- }
- /**
- * 获取对应的支付方式
- * @param $platform app h5 wechat mp-wx
- */
- public function getPayWay($mall_id,$platform){
- $config = SicpayConfig::getConfig($mall_id);
- $way = [];
- switch ($platform){
- case User::PLATFORM_APP:
- // app 场景,返回 支付宝app 微信app 云闪付app支付
- $way = $config->_get_app_way();
- break;
- case User::PLATFORM_H5:
- // h5 场景 返回 支付宝h5 微信h5 银联快捷支付
- $way = $config->_get_h5_way();
- break;
- case User::PLATFORM_WECHAT:
- // 公众号 场景 返回 微信公众号支付
- $way = $config->_get_wechat_way();
- break;
- case User::PLATFORM_MP_WX:
- // 小程序 场景 返回 微信小程序
- $way = $config->_get_mp_way();
- break;
- }
- $api_url = \Yii::$app->services->setting->platform->get('system.api_url');
- foreach ($way as &$item) {
- $item['img'] = $api_url.'/'.$item['img'];
- }
- return $way;
- }
- public function getPayCore($mall_id){
- $config = SicpayConfig::getConfig($mall_id);
- return new PayCore($config->toArray());
- }
- }
|