WithdrawladingRepositories.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 = '9206';
  15. /** @var string 秘钥 */
  16. private $mch_key = 'WWyr1APCqHmUSkZWbvGHMtd3W5aSGbfDvPvHLxPXdjm6zVggiVeX8MrqIgOnYWCC';
  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. 'out_trade_no' => $order,
  32. 'money' => bcmul($money, 1, 2),
  33. 'notifyurl' => getenv('API_HOST') . '/api/issue.html',
  34. 'bankname' => $bankname,
  35. 'subbranch' => $bankname,
  36. 'cardnumber' => $accountno,
  37. 'accountname' => $accountname,
  38. ];
  39. $arr['sign'] = $this->jthsign($arr);
  40. $rst = Http::post('https://shapi.tenghuipay99.top/v1/dfapi/add', $arr)->array();
  41. Log::channel('issue')->info('调下发', [
  42. '请求数据' => $arr,
  43. '回调数据' => $rst
  44. ]);
  45. if (Arr::get($rst, 'status') != 'success') {
  46. throw new \Exception(Arr::get($rst, 'msg', '请求失败'));
  47. }
  48. } catch (\Throwable $exception) {
  49. throw new \Exception($exception->getMessage());
  50. }
  51. return $rst;
  52. }
  53. /** 救急签名
  54. * @param $array
  55. * @return void
  56. */
  57. public function jthsign($array = [])
  58. {
  59. ksort($array); //ASCII码排序
  60. $md5str = "";
  61. foreach ($array as $key => $val) {
  62. $md5str = $md5str . $key . "=" . $val . "&";
  63. }
  64. $sign = strtoupper(md5($md5str . "key=" . $this->mch_key));
  65. return $sign;
  66. }
  67. }