/**
 * [ブロック] クレジット支払い用の申し込みフォームを生成する
 *
 * @param MovieViewerSettings      $settings     プラグイン用設定
 * @param MovieViewerUser          $user         ログインユーザ
 * @param MovieViewerDealPackOffer $offer        受講申し込み購入オファー
 * @param string                   $current_page 画面名
 *
 * @return string 申し込みフォーム(html)
 */
function plugin_movieviewer_purchase_start_convert_credit($settings, $user, $offer, $current_page)
{
    // 取引IDに会員番号を利用するため、会員番号がない場合は、クレジットカード支払いはできない
    if (!$user->hasMemberId()) {
        return plugin_movieviewer_convert_error_response("クレジットカードの支払いには会員番号が必要です。");
    }
    $paygent_settings = $settings->payment->credit->paygent;
    $generator = new MovieViewerDealPackPaygentParameterGenerator($paygent_settings, $user, $offer);
    $return_params = array("cmd" => "movieviewer_purchase_start", "purchase_method" => "credit", "deal_pack_id" => $offer->getPackId());
    $return_uri = plugin_movieviewer_get_script_uri() . "?" . http_build_query($return_params);
    $price_with_notes = plugin_movieviewer_render_dealpack_offer_price($offer);
    $hsc = "plugin_movieviewer_hsc";
    $content = <<<TEXT
    <h2>受講申し込み</h2>
    <p>
    申し込み内容を確認してください。<br>
    「申し込む」ボタンをクリックすると、クレジットカードの支払いページに移動します。<br>
    支払いページは、提携の決済代行会社ペイジェントのページになります。<br>
    </p>
    <p>
    決済の手続きが終了すると当サイトに再び戻ってきますので、それまで手続きを続けてください。
    当サイトに戻ってくる前に手続きを中断してしまった場合、購入完了となりませんのでご注意ください。<br>
    </p>
    <p>
    ※ 当研究所では、会員のみなさまのクレジットカード情報は一切お預かりいたしません。<br>
    </p>
    <p>
    <table class="movieviewer-purchase-request-details">
      <tr><th>項目</th><td>{$hsc($offer->describePack())}</td></tr>
      <tr><th>金額</th><td>{$price_with_notes}</td></tr>
    </table>
    </p>
    <p>

    ※ クレジット決済画面の表示後、5日以内に入金を完了させてください。<br>
    期限が過ぎると、クレジット決済画面が表示されなくなり、入金できなくなります。
    </p>
    <form action="{$paygent_settings["request_uri"]}" method="post">
        <input type="hidden" name="trading_id" value="{$generator->getTradingId()}">
        <input type="hidden" name="id" value="{$generator->getId()}">
        <input type="hidden" name="seq_merchant_id" value="{$generator->getSeqMerchantId()}">
        <input type="hidden" name="hc" value="{$generator->getHash()}">
        <input type="hidden" name="payment_detail" value="{$generator->getPaymentDetail()}">
        <input type="hidden" name="return_url" value="{$return_uri}">
        <button type="submit" class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>申し込む</button>
    </form>
TEXT;
    return $content;
}
Ejemplo n.º 2
0
    function generateMessage($user, $context)
    {
        $settings = plugin_movieviewer_get_global_settings();
        $offer_maker = new MovieViewerDealPackOfferMaker($settings->payment, $user);
        if (!$offer_maker->canOffer()) {
            return '';
        }
        $offer = $offer_maker->getOffer();
        $req_params = "&deal_pack_id={$offer->getPackId()}";
        $start_uri_bank = plugin_movieviewer_get_script_uri() . "?{$context['start_page_bank']}&purchase_method=bank{$req_params}";
        $start_uri_credit = plugin_movieviewer_get_script_uri() . "?{$context['start_page_credit']}&purchase_method=credit{$req_params}";
        $hsc = "plugin_movieviewer_hsc";
        $bank_names_with_notes = nl2br($offer->getPaymentGuide()->bank_transfer->bank_names_with_notes);
        $price_with_notes = plugin_movieviewer_render_dealpack_offer_price($offer);
        if ($settings->payment->isCreditEnabled()) {
            $acceptable_brands = "";
            foreach ($offer->getPaymentGuide()->credit_card->acceptable_brands as $brand) {
                $file_name = "logo_" . strtolower($brand) . ".gif";
                $acceptable_brand = <<<TEXT
                <img src="img/{$file_name}" ALT="{$brand}">
TEXT;
                $acceptable_brands .= $acceptable_brand;
            }
            $money_transfer_info = <<<TEXT
            <tr><th rowspan=2>振込先</th><th width=45%>利用可能な銀行</th><th width=45%>利用可能なクレジットカード</th></tr>
            <tr>
            <td>{$bank_names_with_notes}</td>
            <td style='vertical-align:top;'>{$acceptable_brands}</td>
            </tr>
TEXT;
        } else {
            $money_transfer_info = <<<TEXT
            <tr><th>振込先</th><td colspan=2>{$bank_names_with_notes}</td></tr>
TEXT;
        }
        $bank_transfer_info = <<<TEXT
        <p>
        <table class="movieviewer-payment-guide">
        <tr><th>項目</th><td colspan=2>{$hsc($offer->describePack())}</td></tr>
        <tr><th>金額</th><td colspan=2>{$price_with_notes}</td></tr>
        {$money_transfer_info}
        <tr><th>振込期限</th><td colspan=2>{$hsc($offer->getPaymentGuide()->deadline->format("Y年m月d日"))}まで</td></tr>
        </table>
        </p>
TEXT;
        $buttons_payment = <<<TEXT
        <a href="{$start_uri_bank}" class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>銀行振り込みで申し込み</a>
TEXT;
        if ($settings->payment->isCreditEnabled()) {
            $buttons_payment .= <<<TEXT
            <a href="{$start_uri_credit}" class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>クレジットカードで申し込み</a>
TEXT;
        }
        if ($offer->canDiscount()) {
            $discount_period = $offer->getDiscountPeriod();
            if ($offer->isFirstPurchase()) {
                $discount_message = "新規特別割引は{$hsc($discount_period->date_end->format('m月d日'))}までになります。この機会にぜひお申し込みください。";
            } else {
                $discount_message = "お得な継続割引は{$hsc($discount_period->date_end->format('m月d日'))}までになります。この機会にぜひ継続ください。";
            }
            $offer_message = <<<TEXT
            <p>
            <h3 id='content_1_1'>{$hsc($offer->describePack())}の受講申し込みができるようになりました。<a class='anchor' id='p77e7264' name='p77e7264'></a></h3>
            </p>
            {$bank_transfer_info}
            <p>
            {$discount_message}
            </p>
            <p>
            {$buttons_payment}
            </p>
TEXT;
        } else {
            $offer_message = <<<TEXT
            <p>
            <h3 id='content_1_1'>{$hsc($offer->describePack())}の受講申し込みができます。<a class='anchor' id='p77e7264' name='p77e7264'></a></h3>
            </p>
            {$bank_transfer_info}
            <p>
            {$buttons_payment}
            </p>
TEXT;
        }
        $content = <<<TEXT
        <div class="movieviewer-notice movieviewer-notice-purchase-offer">
        {$offer_message}
        </div>
TEXT;
        return $content;
    }