定期券の払い戻し計算

定期券の払い戻し計算を行います。

※API利用時のイメージ図 (駅すぱあとWebサービス HTML5 インターフェースサンプル)

calc-repayment-teiki

関連URL

手順


  note

定期券の情報を長期保存する際は、駅コード平均路線を保存いただき、払い戻し計算を行う際に再探索を行った結果の経路シリアライズデータをご利用ください。 経路シリアライズデータを長期保存することは推奨しておりません。 定期割り当て用の定期券情報の作成については、定期情報の取得と更新をご確認ください。

1. 経路探索を行う

経路探索を行います。
リクエスト例では、経路探索平均待ち時間による探索を利用していますが、 ダイヤによる探索平均待ち時間による探索は問わないので、経路簡易探索平均待ち時間探索でも可能です。

※リクエスト例では日本語で記述しておりますが、リクエストパラメータに日本語が含まれる場合には、日本語の部分をUTF8でURLエンコード(パーセントエンコード)してください。

GET /v1/xml/search/course/extreme?viaList=高円寺:銀座&searchType=plain
<ResultSet apiVersion="1.27.0.0" engineVersion="201806_01a">
<Course searchType="plain" dataType="plain">
:
<SerializeData>経路シリアライズデータ</SerializeData>
:

2. 定期券の払い戻し計算を行う

1のレスポンスで取得した経路シリアライズデータ ResultSet/Course/SerializeDataを、serializeDataパラメータに指定します。

必要に応じて、startDateパラメータ、buyDateパラメータなどを追加してください。


  note

buyDateパラメータは、定期券の購入日が有効開始日と異なる場合に設定します。 購入日は省略することができ、その場合は有効開始日の値が採用されます。 ただし、払戻対象の定期の購入金額は購入日を元に算出されるため、実際の購入日を省略せずに指定しないと、正しい払戻金額が算出できない場合があります。 例:値上げ実施当日から利用開始となる定期券を、数日前に値上げ実施前の金額で購入していた場合

GET /v1/xml/course/repayment?startDate=20181001&buyDate=20181001&repaymentDate=20181218&validityPeriod=6&changeSection=false&serializeData=1で取得できる経路シリアライズデータを入れてください
<ResultSet apiVersion="1.27.0.0" engineVersion="201806_01a">
<TeikiRoute>
<TeikiRouteSection repaymentTicketIndex="1" index="1">
<Point index="1">
<Station code="22671">
<Name>高円寺</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
<Point index="2">
<Station code="23041">
<Name>四ツ谷</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
</TeikiRouteSection>
<SectionSeparator index="1" divided="false" changeable="true"/>
<TeikiRouteSection repaymentTicketIndex="1" index="2">
<Point index="3">
<Station code="23041">
<Name>四ツ谷</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
<Point index="4">
<Station code="22641">
<Name>銀座</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
</TeikiRouteSection>
</TeikiRoute>
<RepaymentList repaymentDate="2018-12-18" validityPeriod="6" startDate="2018-10-01" buyDate="2018-10-01">
<RepaymentTicket feePriceValue="220" repayPriceValue="26790" state="0" usedPriceValue="33660" calculateTarget="True" toTeikiRouteSectionIndex="2" fromTeikiRouteSectionIndex="1" index="1" validityPeriod="6" payPriceValue="60670"/>
</RepaymentList>
</ResultSet>

3.区間分割を行う

複数の鉄道会社をまたがる場合、2のレスポンスにResultSet / TeikiRoute / SectionSeparator / indexが付与されます。 separatorパラメータを用いることで、1枚の定期券を払い戻す場合と、複数枚の定期券を払い戻す場合の、設定の切り替えが可能です。

GET /v1/xml/course/repayment?startDate=20181001&buyDate=20181001&repaymentDate=20181218&validityPeriod=6&changeSection=false&serializeData=1で取得できる経路シリアライズデータを入れてください&separator=1,true
<ResultSet apiVersion="1.27.0.0" engineVersion="201806_01a">
<TeikiRoute>
<TeikiRouteSection repaymentTicketIndex="1" index="1">
<Point index="1">
<Station code="22671">
<Name>高円寺</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
<Point index="2">
<Station code="23041">
<Name>四ツ谷</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
</TeikiRouteSection>
<SectionSeparator index="1" divided="true" changeable="true"/>
<TeikiRouteSection repaymentTicketIndex="2" index="2">
<Point index="3">
<Station code="23041">
<Name>四ツ谷</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
<Point index="4">
<Station code="22641">
<Name>銀座</Name>
<Type>train</Type>
</Station>
<Prefecture code="13">
<Name>東京都</Name>
</Prefecture>
</Point>
</TeikiRouteSection>
</TeikiRoute>
<RepaymentList repaymentDate="2018-12-18" validityPeriod="6" startDate="2018-10-01" buyDate="2018-10-01">
<RepaymentTicket feePriceValue="220" repayPriceValue="9860" state="0" usedPriceValue="14730" calculateTarget="True" toTeikiRouteSectionIndex="1" fromTeikiRouteSectionIndex="1" index="1" validityPeriod="6" payPriceValue="24810"/>
<RepaymentTicket feePriceValue="220" repayPriceValue="16710" state="0" usedPriceValue="18930" calculateTarget="True" toTeikiRouteSectionIndex="2" fromTeikiRouteSectionIndex="2" index="2" validityPeriod="6" payPriceValue="35860"/>
</RepaymentList>
</ResultSet>