WithdrawladingRepositories.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace plugin\admin\app\repositories;
  3. use app\api\repositories\MoneyLogRepositories;
  4. use Illuminate\Support\Arr;
  5. use plugin\admin\app\model\BankCard;
  6. use plugin\admin\app\model\System;
  7. use plugin\admin\app\model\User;
  8. use plugin\admin\app\model\Withdraw;
  9. use support\Log;
  10. use yzh52521\EasyHttp\Http;
  11. class WithdrawladingRepositories
  12. {
  13. /** @var string 商户号 */
  14. private $mchid = '200064';
  15. /** @var string 秘钥 */
  16. private $mch_key = '1a55fd7bc23fed9030b7ed593ba12866';
  17. /** 申请提现
  18. * @param $order 订单号
  19. * @param $money 下发金额
  20. * @param $bankname 归属银行
  21. * @param $accountname 开户人
  22. * @param $accountno 卡号
  23. * @return array|mixed
  24. * @throws \Exception
  25. */
  26. public function jiujbatchdelivery($order, $money, $bankname, $accountname, $accountno)
  27. {
  28. try {
  29. $arr = [
  30. 'mchid' => $this->mchid,
  31. 'send' => '1',
  32. 'channel' => '903',
  33. 'tradeid' => $order,
  34. 'type' => 'cny',
  35. 'bankname' => $bankname,
  36. 'subbranch' => '123',
  37. 'cardnumber' => $accountno,
  38. 'accountname' => $accountname,
  39. 'money' => bcmul($money, 1, 2),
  40. 'paydate' => time(),
  41. ];
  42. $arr['sign'] = $this->jthsign($arr);
  43. $arr['notifyurl'] = getenv('API_HOST') . '/api/issue_three.html';
  44. $rst = Http::post('https://hongyun.heimao.uk/api/order', $arr)->array();
  45. Log::channel('issue')->info('调下发', [
  46. '请求数据' => $arr,
  47. '回调数据' => $rst
  48. ]);
  49. if (Arr::get($rst, 'code') != 1) {
  50. throw new \Exception(Arr::get($rst, 'msg', '请求失败'));
  51. }
  52. } catch (\Throwable $exception) {
  53. throw new \Exception($exception->getMessage());
  54. }
  55. return $rst;
  56. }
  57. /** 救急签名
  58. * @param $array
  59. * @return void
  60. */
  61. public function jthsign($array = [])
  62. {
  63. ksort($array); //ASCII码排序
  64. $md5str = "";
  65. foreach ($array as $key => $val) {
  66. $md5str = $md5str . $key . "=" . $val . "&";
  67. }
  68. $sign = md5($md5str . "key=" . $this->mch_key);
  69. return $sign;
  70. }
  71. }