{% if Order.Payment.getMethodClass == 'Plugin\\UnivaPay\\Service\\Method\\Subscription' %}
{% set config = repository('Plugin\\UnivaPay\\Entity\\Config').findOneById(1) %}
<script src="{{ config.getWidgetUrl() }}/client/checkout.js"></script>
<div id="univapay-subscription">
<div class="ec-rectHeading">
<h2>サブスクリプション</h2>
</div>
<ul class="list-inline">
<li class="list-inline-item">
<button id="univapay-action__cancel" type="button"
class="btn btn-ec-regular px-5" disabled>
{{ 'univa_pay.subscription.cancel'|trans }}
</button>
</li>
<li class="list-inline-item">
<button id="univapay-action__change" type="button"
class="btn btn-ec-regular px-5" disabled>
{{ 'univa_pay.subscription.change'|trans }}
</button>
</li>
</ul>
</div>
<script>
$(function () {
// 支払情報の下にセクションを移動
document.querySelector(".ec-orderPayment").after(document.querySelector("#univapay-subscription"));
// 決済状況取得
$.ajax({
type: 'GET',
url: '{{ url('univa_pay_get_subscription', { id: Order.id }) }}',
}).always(function(e) {
if(e.status.name !== 'CANCELED') {
$('#univapay-subscription button').prop('disabled', false);
}
});
$('#univapay-action__cancel').on('click', function () {
$('#univapay-subscription button').prop('disabled', true);
$.ajax({
type: 'POST',
url: '{{ url('univa_pay_cancel_subscription', { id: Order.id }) }}'
}).always(function () {
location.href = location.href;
});
});
checkout = UnivapayCheckout.create({
appId: "{{ config.getAppId() }}",
checkout: "token",
tokenType: "subscription",
subscriptionPeriod: "daily",
email: "{{ Order.email }}",
onSuccess: (result) => {
$.ajax({
type: 'POST',
url: '{{ url('univa_pay_update_subscription', { id: Order.id }) }}',
data: result.response.id
}).always(function () {
location.href = location.href;
});
},
onError: () => {
alert("エラーが発生しました。サイト管理者にお問い合わせください。");
location.href = location.href;
},
closed: () => {
alert("決済が中断されました");
location.href = location.href;
}
});
$('#univapay-action__change').on('click', function () {
$('#univapay-subscription button').prop('disabled', true);
checkout.open();
});
});
</script>
{% endif %}