MerchantService.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace addons\Store\common\services;
  3. use addons\Store\common\models\StoreSettings;
  4. use addons\YunfastPay\common\services\YunPayService;
  5. use yii\helpers\Json;
  6. /**
  7. * 商户service
  8. * @package addons\Store\common\services
  9. */
  10. class MerchantService extends BaseService
  11. {
  12. /**
  13. * 获取设置
  14. *
  15. * @return array
  16. */
  17. public function getSetting()
  18. {
  19. $setting = StoreSettings::getMerchantSettings($this->store_id);
  20. return $this->formatSetting($setting);
  21. }
  22. /**
  23. * mcht_cd
  24. *
  25. * @return string|null
  26. */
  27. public function getMchtCd()
  28. {
  29. $setting = $this->getSetting();
  30. return !empty($setting['mcht_cd'])
  31. ? $setting['mcht_cd']
  32. : null;
  33. }
  34. /**
  35. * 获取签约链接
  36. *
  37. * @return string
  38. */
  39. public function getSignLink()
  40. {
  41. return (new YunPayService(['mall_id' => $this->mall_id]))
  42. ->getSignUrl($this->store_id);
  43. }
  44. /**
  45. * 保存设置
  46. *
  47. * @param array $setting
  48. * @return boolean
  49. */
  50. public function setSetting(array $setting)
  51. {
  52. return StoreSettings::setMerchantSettings(
  53. $this->mall_id,
  54. $this->store_id,
  55. $setting
  56. );
  57. }
  58. /**
  59. * 格式化
  60. *
  61. * @param string $setting
  62. * @return array
  63. */
  64. protected function formatSetting($setting)
  65. {
  66. return !empty($setting)
  67. ? Json::decode($setting)
  68. : [];
  69. }
  70. /**
  71. * 获取银行账户信息
  72. *
  73. * @return array
  74. */
  75. public function getBankInfo()
  76. {
  77. $setting = $this->getSetting();
  78. return [
  79. 'name' => trim($setting['name']),
  80. 'bank_account' => trim($setting['bank_account']),
  81. 'bank_account_type' => intval($setting['bank_account_type']),
  82. ];
  83. }
  84. }