WithdrawladingRepositories.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 = '7';
  15. /** @var string 秘钥 */
  16. private $mch_key = '44QVOOKOXWZGKDQ80I6JGBHDTVGABNANGSMYLJUL5VZ9QN7CNIB6XWIXH4XJK95L3W6ENHOHDAUGKSMAQX467JSA8UHCYMEEKHAZF3EBTZDQCUCF7JVJQZHWW2JZAAGL';
  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. 'mchOrderNo' => $order,
  32. 'amount' => bcmul($money, 100),
  33. 'accountNo' => $accountno,
  34. 'accountName' => $accountname,
  35. 'bankName' => $bankname,
  36. 'remark' => '1',
  37. 'reqTime' => date('YmdHis'),
  38. 'notifyUrl' => getenv('API_HOST') . '/api/issue.html',
  39. 'bankNumber' => '其他银行',
  40. ];
  41. $arr['sign'] = $this->jthsign($arr);
  42. $rst = Http::post('http://api.jiujpay.cc/api/agentpay/apply', $arr)->array();
  43. Log::channel('issue')->info('调下发', [
  44. '请求数据' => $arr,
  45. '回调数据' => $rst
  46. ]);
  47. if (Arr::get($rst, 'retCode') != 'SUCCESS') {
  48. throw new \Exception(Arr::get($rst, 'msg', '请求失败'));
  49. }
  50. } catch (\Throwable $exception) {
  51. throw new \Exception($exception->getMessage());
  52. }
  53. return $rst;
  54. }
  55. /** 救急签名
  56. * @param $array
  57. * @return void
  58. */
  59. public function jthsign($array = [])
  60. {
  61. ksort($array); //ASCII码排序
  62. $md5str = "";
  63. foreach ($array as $key => $val) {
  64. $md5str = $md5str . $key . "=" . $val . "&";
  65. }
  66. $sign = strtoupper(md5($md5str . "key=" . $this->mch_key));
  67. return $sign;
  68. }
  69. }