Пример #1
0
 /**
  * 批量托管代付交易
  * @param $payee_uid 代付信息数组类型---uid=>money 需要收款人ID-->收款金额
  * @param $collect_pay_no 对应的代付订单号
  * @return array|mixed
  */
 public static function batchPay($payee_uid, $collect_pay_no)
 {
     $out_pay_no = self::build_order_no();
     //批量代付交易列表
     $list = '';
     $count = 0;
     //判定参数类型
     if (!is_array($payee_uid)) {
         $return = array('errorNum' => '1', 'errorMsg' => '请以数组类型传递参数', 'data' => null);
         return $return;
     }
     $length = count($payee_uid);
     if ($length == 0) {
         $return = array('errorNum' => '1', 'errorMsg' => '数组不能为空', 'data' => null);
         return $return;
     }
     foreach ($payee_uid as $key => $value) {
         $payee_order = self::build_order_no();
         $payee_identity_id = self::getIdentity($key);
         if (!$payee_identity_id) {
             //检测收款人信息
             break;
         }
         $identity_type = 'UID';
         $account_type = 'SAVING_POT';
         $money = $value;
         $summary = '代收投资';
         $count++;
         //分账参数
         $f_list = '';
         $list .= '$' . $payee_order . '~' . $payee_identity_id . '~' . $identity_type . '~' . $account_type . '~' . $money . '~' . $f_list . '~' . $summary;
     }
     if ($count != $length) {
         $return = array('errorNum' => '1', 'errorMsg' => '第' . ($count + 1) . '个收款人信息错误', 'data' => null);
         return $return;
     }
     //交易参数
     $trade_list = substr($list, 1);
     // 异步通知方式
     $notify_method = 'batch_notify';
     $notify_url = "";
     $sina = new sina();
     $result = $sina->create_batch_hosting_pay_trade($out_pay_no, $trade_list, $notify_method);
     if (!$result) {
         $log = self::batchpayLog($out_pay_no, $collect_pay_no, $trade_list, SinaBatchpay::STATUS_ERROR, '新浪接口错误');
         $return = array('errorNum' => '1', 'errorMsg' => '新浪接口错误', 'data' => null);
         return $return;
     }
     if ($result['response_code'] == 'APPLY_SUCCESS') {
         $log = self::batchpayLog($out_pay_no, $collect_pay_no, $trade_list, SinaBatchpay::STATUS_SUCCESS, "代付成功");
         $return = array('errorNum' => '0', 'errorMsg' => 'success', 'data' => null);
         return $return;
     } else {
         $log = self::batchpayLog($out_pay_no, $collect_pay_no, $trade_list, SinaBatchpay::STATUS_ERROR, $result['response_message']);
         $return = array('errorNum' => '1', 'errorMsg' => $result['response_message'], 'data' => null);
         return $return;
     }
 }