seven 2 months ago
parent
commit
cd54c4883f
2 changed files with 40 additions and 3 deletions
  1. 2 1
      app/Http/Controllers/admin/Wallet.php
  2. 38 2
      app/Services/Payment/SanJinService.php

+ 2 - 1
app/Http/Controllers/admin/Wallet.php

@@ -283,7 +283,8 @@ class Wallet extends Controller
         // $result = IssueService::sendLotteryImage($memberId, 3356000);
         $order_no = SanJinService::createOrderNo();
         echo $order_no;
-        $result = SanJinService::pay(100,$order_no);
+        // $result = SanJinService::pay(100,$order_no);
+        $result = SanJinService::payout(100,$order_no,'厦门银行','张三',1245679451259741541,SanJinService::ALIPAY_TO_CARD);
         echo "<pre>";
         var_dump($result);
     }

+ 38 - 2
app/Services/Payment/SanJinService.php

@@ -60,7 +60,7 @@ class SanJinService extends BaseService
         return json_decode($body->getContents(), true);
     }
 
-    
+    // 代收
     public static function pay($amount, $order_no, $payType = self::ALIPAY_TO_ALIPAY)
     {
         $data = [];
@@ -71,7 +71,7 @@ class SanJinService extends BaseService
         $data['amount'] = $amount;
         $data['orderNo'] = $order_no;
         $data['notifyUrl'] = $notify_url;
-        $data['payType'] = self::ALIPAY_TO_CARD;
+        $data['payType'] = $payType;
         // $data['returnUrl'] = $return_url;
 
         $signStr = $merchant_id .  $order_no . $amount . $secret;
@@ -90,4 +90,40 @@ class SanJinService extends BaseService
         
         return $result;
     }
+
+    // 代付
+    public static function payout($amount, $order_no, $bank_name, $account, $card_no, $payType = self::ALIPAY_TO_ALIPAY)
+    {
+        $data = [];
+        $merchant_id  = config('app.tree_payment_merchant_id');
+        $secret = config('app.tree_payment_secret');
+        $notify_url = self::getNotifyUrl();
+
+        $data['merchantNum'] = $merchant_id;
+        $data['amount'] = $amount;
+        $data['orderNo'] = $order_no;
+        $data['notifyUrl'] = $notify_url;
+        $data['payType'] = $payType;
+
+        $signStr = $merchant_id .  $order_no . $amount . $secret;
+        $sign = md5($signStr);
+        $data['sign'] = $sign;
+
+        $data['bankName'] = $bank_name;
+        $data['account'] = $account;
+        $data['cardNumber'] = $card_no;
+        
+
+        $client = self::getClient();
+        $response = $client->post('api/payout', [
+                'form_params' => $data,
+                'headers' => [
+                    'Content-Type' => 'application/x-www-form-urlencoded',
+                ]
+            ]);
+        $body = $response->getBody();
+        $result = json_decode($body->getContents(), true);
+        
+        return $result;
+    }
 }