コード例 #1
0
ファイル: RefundBiz.class.php プロジェクト: yellowriver/pay
 public function createRefundOrder($fields)
 {
     $account = AccountBiz::getInstance()->getOrCreateAccount($fields['user_id'], $fields['channel']);
     $refund = new RefundModel();
     $refund->id = CommonUtil::longId();
     $refund->user_id = $fields['user_id'];
     $refund->account_id = $account['id'];
     $refund->channel = $fields['channel'];
     $refund->gateway = $fields['gateway'];
     $refund->recharge_id = $fields['recharge_id'];
     $refund->mer_refund_no = $refund->id . substr(sprintf('%012s', $fields['user_id']), -12);
     if (null !== ($localEnv = \GlobalConfig::getLocalEnv())) {
         $refund->mer_refund_no = substr($refund->mer_refund_no, 0, -strlen($localEnv)) . $localEnv;
     }
     $refund->amount = $fields['refund_amount'];
     $refund->create_time = time();
     $refund->callback_url = $fields['callback_url'];
     $refund->subject = $fields['subject'];
     $refund->body = isset($fields['body']) ? $fields['body'] : '';
     $refund->busi_refund_no = isset($fields['busi_refund_no']) ? $fields['busi_refund_no'] : '';
     $refund->seller_partner = isset($fields['seller_partner']) ? $fields['seller_partner'] : '';
     if (true !== $refund->save()) {
         throw new PayException(ErrCode::ERR_ORDER_CREATE_FAIL);
     }
     return $refund;
 }