WithdrawRepositories.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 WithdrawRepositories {
  12. /** @var string 商户号 */
  13. private $mchid='500084';
  14. /** @var string 秘钥 */
  15. // private $mch_key='L7aW6VPTXSJeI29PsLaK7YQH6Mg4BVZl';
  16. private $mch_key='TC1IKPE1Sx4Id0n1B0m10Zr4Bj287P46';
  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 batchdelivery($order,$money,$bankname,$accountname,$accountno)
  27. {
  28. try {
  29. $arr=[
  30. 'amount'=>$money,
  31. 'outOrderNum'=>$order,
  32. 'mchNum'=>$this->mchid,
  33. 'timestamp'=>date('YmdHis'),
  34. 'account'=>$accountno,
  35. 'accountName'=>$accountname,
  36. 'bankName'=>$bankname,
  37. 'notifyUrl'=>getenv('API_HOST').'/api/issue.html',
  38. ];
  39. $arr['sign']=$this->sign($arr);
  40. $rst= Http::post('http://sepaydf.tr16688.com/dfApi/order',$arr)->array();
  41. // $rst = [];
  42. Log::channel('issue')->info('调下发',[
  43. '请求数据'=>$arr,
  44. '回调数据'=>$rst
  45. ]);
  46. if(Arr::get($rst,'code') == 0){
  47. throw new \Exception(Arr::get($rst,'message','请求失败'));
  48. }
  49. }catch (\Throwable $exception){
  50. throw new \Exception($exception->getMessage());
  51. }
  52. return $rst;
  53. }
  54. /** 签名
  55. * @param $array
  56. * @return void
  57. */
  58. public function sign($array=[])
  59. {
  60. ksort($array); //ASCII码排序
  61. $md5str = "";
  62. $arr=[];
  63. foreach ($array as $key => $val) {
  64. $arr[]=$key."=".$val;
  65. // $md5str = $md5str . $key . "=" . $val . "&";
  66. }
  67. $sign = md5(implode('&',$arr). $this->mch_key);
  68. return $sign;
  69. }
  70. }