MerchantLakalaApplyRepository.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. <?php
  2. /**
  3. * @package merchant
  4. *
  5. * @author xaboy
  6. * @day 2020-04-16
  7. *
  8. *
  9. */
  10. namespace app\common\repositories\merchant\apply;
  11. use app\common\dao\merchant\apply\MerchantLakalaApplyDao;
  12. use app\common\repositories\BaseRepository;
  13. use app\common\repositories\merchant\order\OrderMerchantRepository;
  14. use app\common\repositories\store\order\StoreOrderRepository;
  15. use think\facade\Db;
  16. use think\facade\Log;
  17. //use Lakala\src\LakalaBoss;
  18. //use Lakala\src\AES;
  19. //use lakala\sdk\com\fds\FdsSdk;
  20. use Lakala\sdk\FdsSdk;
  21. /**
  22. * 拉卡拉商户入网业务申请
  23. * Class MerchantHaikeApplyRepository
  24. * @package app\common\repositories\merchant
  25. * @author ljj
  26. * @created 2021/2/20 14:28
  27. */
  28. class MerchantLakalaApplyRepository extends BaseRepository
  29. {
  30. /**
  31. * MerchantRepository constructor.
  32. * @param MerchantHaikeApplyDao $dao
  33. */
  34. public function __construct(MerchantLakalaApplyDao $dao)
  35. {
  36. $this->dao = $dao;
  37. // FdsSdk::setAppId("6633965341557002240");
  38. // FdsSdk::setServerUrl("http://47.105.146.241:9510/service/soa");
  39. // FdsSdk::setApiVersion("3.0");
  40. // FdsSdk::setDSAKey("/www/wwwroot/renrenxiang/extend/Lakala/cert2/dsa_public_key.cer", "/www/wwwroot/renrenxiang/extend/Lakala/cert2/dsa_private_key.pfx", "PXommGBW9gj0XWSq");
  41. // FdsSdk::setRSAKey("/www/wwwroot/renrenxiang/extend/Lakala/cert2/rsa_public_key.cer", "/www/wwwroot/renrenxiang/extend/Lakala/cert2/rsa_private_key.pfx", "uqouGAKgs4iuxOkm");
  42. }
  43. /**
  44. * 获取单条订单信息
  45. */
  46. public function getOne(string $agent_apply_no)
  47. {
  48. $where = ['agent_apply_no' => $agent_apply_no];
  49. return ($this->dao->getWhere($where));
  50. }
  51. /**
  52. * 创建申请订单lakala 创建会员
  53. * @return array|\think\Model|null
  54. * @author ljj
  55. * @created 2021/2/20 10:45
  56. * @return mixed
  57. */
  58. public function createOrderlakala(array $params)
  59. {
  60. // date_default_timezone_set('PRC');
  61. // $out_member_no = "member0001";
  62. // require_once '/sdk/com/fds/FdsSdk.php';
  63. //应用编号,需修改
  64. $intentionRepository = app()->make(MerchantIntentionApplyRepository::class);
  65. $intention = $intentionRepository->getOne(['mer_intention_id' => $params['mer_intention_id']]);
  66. if (!$intention){
  67. return ['code' => 500, 'msg' => '无申请信息'];
  68. }
  69. $province_code=Db::name("user_province")->where("province_id",$intention->province_id)->value("province_code");
  70. $city_code=Db::name("user_city")->where("city_id",$intention->city_id)->value("city_code");
  71. $area_code=Db::name("user_area")->where("area_id",$intention->area_id)->value("area_code");
  72. // $type
  73. $type=2;
  74. if ($intention->type==1){
  75. //企业会员
  76. $type=3;
  77. }
  78. if ($intention->type==3){
  79. //个人会员
  80. $type=2;
  81. }
  82. if ($intention->type==2){
  83. //个体工商
  84. $type=4;
  85. }
  86. $param=[
  87. "out_member_no"=>$intention->merch_no,
  88. "name"=>$intention->mer_name,
  89. "address"=>$intention->addr,
  90. "linkman_name"=>$intention->name,
  91. "linkman_phone"=>$intention->phone,
  92. "province_code"=>$province_code,
  93. "city_code"=>$city_code,
  94. "area_code"=>$area_code,
  95. "member_type"=>$type
  96. ];
  97. $result = FdsSdk::getService()->createPersonMember($param);
  98. if ($result["status"]=="OK"){
  99. $apply=Db::name("merchant_lakala_apply")->where("member_no",$result["result"]["member_no"])->find();
  100. if (!$apply){
  101. Db::name("merchant")->where("merch_no",$intention->merch_no)->update([
  102. "member_no"=>$result["result"]["member_no"]
  103. ]);
  104. Db::name("merchant_lakala_apply")->insert(
  105. [
  106. "apply_id"=>$intention->mer_intention_id,
  107. "mer_id"=>$intention->mer_id,
  108. "mer_name"=>$intention->name,
  109. "uid"=>$intention->uid,
  110. "phone"=>$intention->phone,
  111. "merch_no"=>$intention->merch_no,
  112. "member_no"=>$result["result"]["member_no"],
  113. "member_status"=>$result["result"]["member_status"],
  114. "real_status"=>$result["result"]["real_status"],
  115. "member_category"=>$result["result"]["member_category"],
  116. "mobile_bind"=>$result["result"]["mobile_bind"],
  117. ]
  118. );
  119. }else{
  120. Db::name("merchant_lakala_apply")->where("member_no",$result["result"]["member_no"])->update(
  121. [
  122. "apply_id"=>$intention->mer_intention_id,
  123. "mer_id"=>$intention->mer_id,
  124. "mer_name"=>$intention->name,
  125. "uid"=>$intention->uid,
  126. "phone"=>$intention->phone,
  127. "merch_no"=>$intention->merch_no,
  128. "member_no"=>$result["result"]["member_no"],
  129. "member_status"=>$result["result"]["member_status"],
  130. "real_status"=>$result["result"]["real_status"],
  131. "member_category"=>$result["result"]["member_category"],
  132. "mobile_bind"=>$result["result"]["mobile_bind"]?1:0,
  133. ]
  134. );
  135. }
  136. return $result;
  137. }else{
  138. // if ($result["status"]==400){
  139. // if (!empty($result["data"]["error_code"]) && $result["data"]["error_code"]=="OP021100"){
  140. $apply=Db::name("merchant_lakala_apply")->where( "apply_id",$params['mer_intention_id'])->value("member_no");
  141. if ($apply){
  142. // $type=2;
  143. // if ($intention->type==1){
  144. // //企业会员
  145. // $type=3;
  146. // }
  147. // if ($intention->type==3){
  148. // //个人会员
  149. // $type=2;
  150. // }
  151. // if ($intention->type==2){
  152. // //个体工商
  153. // $type=4;
  154. // }
  155. $param=[
  156. "member_no"=>$apply,
  157. "out_member_no"=>$intention->merch_no,
  158. "name"=>$intention->mer_name,
  159. "address"=>$intention->addr,
  160. "linkman_name"=>$intention->name,
  161. "linkman_phone"=>$intention->phone,
  162. "province_code"=>$province_code,
  163. "city_code"=>$city_code,
  164. "area_code"=>$area_code,
  165. // "member_type"=>$type
  166. ];
  167. $result = FdsSdk::getService()->memberUpdate($param);
  168. return $result;
  169. }
  170. }
  171. // }
  172. // }
  173. }
  174. /**
  175. * 会员绑定手机号申请
  176. * @param $params
  177. */
  178. public function createMobileMember($params){
  179. $param=[
  180. "member_no"=> $params["member_no"],
  181. "mobile"=>$params["phone"],
  182. ];
  183. $result = FdsSdk::getService()->createMobileMember($param);
  184. if ($result["status"]=="OK"){
  185. return $result;
  186. }else{
  187. return ["res"=>$result,"msg"=>$param] ;
  188. }
  189. }
  190. /**
  191. * 确认绑定手机号
  192. * @param $params
  193. */
  194. public function createMepdember($params){
  195. $result = FdsSdk::getService()->createMepdember($params);
  196. if ($result["status"]=="OK"){
  197. return $result;
  198. }else{
  199. return ["res"=>$result,"msg"=>$params] ;
  200. }
  201. }
  202. /**
  203. * 企业信息认证
  204. * @param $params
  205. */
  206. public function createCompanyVerify($params,$intention){
  207. $param=[
  208. "member_no"=>$params["member_no"],
  209. "name"=>$params["mer_name"],
  210. "identity_type"=>1,
  211. "identity_name"=>$intention["name"],
  212. "identity_no"=> $intention["idcard_no"],
  213. // "identity_no"=>$intention["idcard_no"],
  214. "business_license"=>$intention["credit_code"],
  215. "business_license_start_date"=>$intention["merc_start_time"],
  216. "business_license_valid_date"=>$intention["merc_end_time"],
  217. ];
  218. $result = FdsSdk::getService()->createCompanyVerify($param);
  219. if ($result["status"]=="OK"){
  220. Db::name("merchant_lakala_apply")->where( "member_no",$params["member_no"])->update([
  221. "member_status"=>$result["result"]["member_status"],
  222. "real_status"=>$result["result"]["real_status"],
  223. "mobile_bind"=>$result["result"]["mobile_bind"]?1:0,
  224. "member_category"=>$result["result"]["member_category"]
  225. ]);
  226. return $result;
  227. }else{
  228. return ["res"=>$result,"msg"=>$param,"intention"=>$intention] ;
  229. }
  230. }
  231. /**
  232. * 首笔支付认证_对公卡
  233. * @param $params
  234. */
  235. public function memberBankBind($params,$intention){
  236. $province_code=Db::name("user_province")->where("province_id",$intention["province_id"])->value("province_code");
  237. $city_code=Db::name("user_city")->where("city_id",$intention["city_id"])->value("city_code");
  238. $area_code=Db::name("user_area")->where("area_id",$intention["area_id"])->value("area_code");
  239. $param=[
  240. "member_no"=>$params["member_no"],
  241. "company_name"=>$params["mer_name"],
  242. "bank_card_no"=>$intention["bank_account"],
  243. "bank_name"=>$intention["bank_branch"],
  244. "bank_code"=>$intention["bank_name"],
  245. "province_code"=>$province_code,
  246. "city_code"=>$city_code,
  247. "area_code"=>$area_code,
  248. ];
  249. $result = FdsSdk::getService()->memberBankBind($param);
  250. if ($result["status"]=="OK"){
  251. return $result;
  252. }else{
  253. return ["res"=>$result,"msg"=>$param] ;
  254. }
  255. }
  256. /**
  257. * 确认绑定银行卡_个人
  258. * @param $params
  259. */
  260. public function memberBankVerify($params){
  261. $result = FdsSdk::getService()->memberBankVerify($params);
  262. if ($result["status"]=="OK"){
  263. return $result;
  264. }else{
  265. return ["res"=>$result,"msg"=>$params] ;
  266. }
  267. }
  268. /**
  269. * 开通商户
  270. * @param $params
  271. */
  272. public function createMerchant($params,$intention){
  273. $param=[
  274. "member_no"=>$params["member_no"],
  275. "channel_type"=>"OPEN_PLATFORM",
  276. "out_merchant_no"=>$intention["merch_no"],
  277. "biz_content"=>$intention["desc"],
  278. "mcc_code"=>"99",
  279. "back_url"=>"http://app.bjtdba.com/admin",
  280. "seller_scale"=>0.2,
  281. "condition"=>"ge",
  282. ];
  283. $result = FdsSdk::getService()->createMerchant($param);
  284. if ($result["status"]=="OK"){
  285. return $result;
  286. }else{
  287. return ["res"=>$result,"msg"=>$param] ;
  288. }
  289. }
  290. /**
  291. * 开通商户确认
  292. * @param $param
  293. * @return bool|mixed|string
  294. */
  295. public function createMerchantConfirm($params){
  296. $result = FdsSdk::getService()->createMerchantConfirm($params);
  297. if ($result["status"]=="OK"){
  298. return $result;
  299. }else{
  300. return ["res"=>$result,"msg"=>$params] ;
  301. }
  302. }
  303. /**
  304. * 商户绑定
  305. * @param $params
  306. * @return array|bool|mixed|string
  307. * @throws \think\db\exception\DbException
  308. */
  309. public function memberMerchantBind($param){
  310. $params=[
  311. "member_no"=>$param["member_no"],
  312. "channel_merchant_no"=>$param["channel_merchant_no"],
  313. "merchant_type"=>$param["merchant_type"],
  314. ];
  315. $result = FdsSdk::getService()->memberMerchantBind($params);
  316. if ($result["status"]=="OK"){
  317. Db::name("merchant_lakala_apply")->where("member_no",$result["result"]["member_no"])->update(["status"=>2]);
  318. return $result;
  319. }else{
  320. return ["res"=>$result,"msg"=>$params] ;
  321. }
  322. }
  323. /**
  324. * 开通支付账户(URL)
  325. * @param $params
  326. * @return array|bool|mixed|string
  327. * @throws \think\db\exception\DbException
  328. */
  329. public function payAccount($param){
  330. $params=[
  331. "member_no"=>$param["member_no"],
  332. ];
  333. $result = FdsSdk::getService()->payAccount($params);
  334. if ($result["status"]=="OK"){
  335. Db::name("merchant_lakala_apply")->where("member_no",$param["member_no"])->update(["status"=>3]);
  336. return $result;
  337. }else{
  338. return ["res"=>$result,"msg"=>$params] ;
  339. }
  340. }
  341. /**
  342. * 消费
  343. * @param $params
  344. * @return array|bool|mixed|string
  345. * @throws \think\db\exception\DbException
  346. */
  347. public function orderConsume($param,$member_no){
  348. $params=[
  349. "member_no"=>$member_no,
  350. "out_order_no"=>$param["order_no"],
  351. "amount"=>$param["amount"],
  352. "pay_amount"=>$param["amount"],
  353. "terminal_ip"=>$this->getRealIP(),
  354. "order_name"=>"线上订单",
  355. "split_mode"=>1
  356. ];
  357. $result = FdsSdk::getService()->orderConsume($params);
  358. if ($result["status"]=="OK"){
  359. return $result;
  360. }else{
  361. return ["res"=>$result,"msg"=>$params] ;
  362. }
  363. }
  364. public function getRealIP(){
  365. $forwarded = request()->header("x-forwarded-for");
  366. if($forwarded){
  367. $ip = explode(',',$forwarded)[0];
  368. }else{
  369. $ip = request()->ip();
  370. }
  371. return $ip;
  372. }
  373. // public function createPersMweronMember($params){
  374. // $intentionRepository = app()->make(MerchantIntentionApplyRepository::class);
  375. // $intention = $intentionRepository->getOne(['mer_intention_id' => $params['mer_intention_id']]);
  376. // if (!$intention){
  377. // return ['code' => 500, 'msg' => '无申请信息'];
  378. // }
  379. // //应用编号,需修改
  380. // FdsSdk::setAppId("6633965341557002240");
  381. // FdsSdk::setServerUrl("http://47.105.146.241:9510/service/soa");
  382. // FdsSdk::setApiVersion("3.0");
  383. // //DSAPublicKeyPath :钱帐通的DSA公钥文件所在目录,需修改
  384. // //DSAPrivateKeyPath :应用自己的DSA私钥文件所在目录,需修改
  385. // //DSAPrivateKeyPass :应用自己的DSA私钥密码,需修改
  386. // FdsSdk::setDSAKey("/www/wwwroot/renrenxiang/extend/Lakala/cert2/dsa_public_key.cer", "/www/wwwroot/renrenxiang/extend/Lakala/cert2/dsa_private_key.pfx", "PXommGBW9gj0XWSq");
  387. // //RSAPublicKeyPath :钱帐通的RSA公钥文件所在目录,需修改
  388. // //RSAPrivateKeyPath :应用自己的RSA私钥文件所在目录,需修改
  389. // //RSAPrivateKeyPass :应用自己的RSA私钥密码,需修改
  390. // FdsSdk::setRSAKey("/www/wwwroot/renrenxiang/extend/Lakala/cert2/rsa_public_key.cer", "/www/wwwroot/renrenxiang/extend/Lakala/cert2/rsa_private_key.pfx", "uqouGAKgs4iuxOkm");
  391. // // rsa加密方法
  392. // // FdsSdk::getService()->rsaEncrypt("332624199001011111");
  393. // // 外部会员标识,需修改
  394. // $param=[
  395. // "member_no"=>$intention->mer_intention_id,
  396. // "out_merchant_no"=>$intention->merch_no,
  397. // "back_url"=>"http://app.bjtdba.com/admin",
  398. // "seller_scale"=>0.2,
  399. // "merchant_name"=>$intention->mer_name,
  400. // ];
  401. // $result = FdsSdk::getService()->createPersMweronMember($param);
  402. // return $result;
  403. // }
  404. /**
  405. * 拉卡拉入网
  406. * @param array $datas 商户数据
  407. * @param $mer_id 商户id
  408. * @data 2021-2-5
  409. */
  410. public function lakalaru($datas,$mer_id){
  411. }
  412. /**
  413. * 拉卡拉取消订单管理
  414. */
  415. public function autoCancelOrder($orderId){
  416. }
  417. }