外部加盟店用 - line pay merchant · line pay 技術連動オアデ(外部加盟店用 ) 13 2....

29
LINE Pꜳ技術連動 外部加盟店用

Upload: others

Post on 28-Oct-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

LINE Pay技術連動ガイド 外部加盟店用

2

著作権

Copyright © LINE Corp. All Rights Reserved.

本文書は、LINE株式会社の知的財産であるため、いかなる場合にもLINE株式会社の許可なく本文書の一部または全部をコ

ピー、転送、配布、変更して使用することはできません。

本文書は、情報提供の目的に限って提供されます。LINE株式会社は、本文書に収められた情報については完全性と正確性

を期しておりますが、記載内容の誤りや漏れによって発生する問題については責任を負いません。

したがって、本文書の使用や、使用した結果に伴う責任は全面的に利用者にあり、LINE株式会社はこれについて、明示的ま

たは黙示的にいかなる保証もいたしません。

関連URL情報を含め、本文書で言及した特定のソフトウェア商品および製品は、当該所有者が属している現地および国内外

の関連法に従い、当該法律を遵守しないことにより発生するあらゆる結果に対する責任は全面的に利用者自身にあります。

LINE株式会社は、本文書の内容を予告なく変更する場合があります。

3

文書情報

文書概要

本文書ではLINE Pay加盟店の決済をLINE Payと連動する方法について説明します。

対象

本文書の対象は、LINE Pay加盟店のサーバー/サイト開発者で、HTTP通信とRestful APIを理解する必要があります。

問い合わせ先

LINE Payに関する問い合わせは下記までご連絡ください。

お問い合わせ先 ([email protected])

文書バージョンおよび履歴

バージョン 日付 変更履歴

1.0 2014.11.10 初版作成

1.0.1 2014.12.01 自動決済使用可能有無確認 API を追加

付録追加

4

表記ルール

ソースコード表記

本文書においてソースコードはグレーの背景に黒字で表記します。

COPYDATASTRUCT st;

st.dwData = PURPLE_OUTBOUND_ENDING;

st.cbData = sizeof(pp);

st.lpData = &pp;

::SendMes(GetTargetHwnd(), WM_COPYDATA, (WPARAM)this->m_hWnd, (LPARAM)&st);

5

目次

概要 ______________________________________________ 9

LINE Pay とは ____________________________________________________________________________________ 9

LINE Pay 加盟店の登録プロセス __________________________________________________________________ 10

LINE Pay 連動 ___________________________________________________________________________________ 11

決済予約 ____________________________________________________________________________________ 11

決済承認 ____________________________________________________________________________________ 12

決済履歴照会 _______________________________________________________________________________ 13

決済払い戻し ________________________________________________________________________________ 14

LINE Pay 連動 API の使用方法 ______________________________ 15

決済予約_________________________________________________________________________________________ 15

決済予約API ________________________________________________________________________________ 15

決済予約API明細 ___________________________________________________________________________ 15

決済予約API使用例 _________________________________________________________________________ 18

決済承認_________________________________________________________________________________________ 19

決済承認API ________________________________________________________________________________ 19

決済承認API明細 ___________________________________________________________________________ 19

決済承認API使用例 _________________________________________________________________________ 21

決済履歴_________________________________________________________________________________________ 21

決済履歴照会API ___________________________________________________________________________ 21

決済履歴照会API明細 _______________________________________________________________________ 21

決済履歴照会API使用例 ____________________________________________________________________ 23

決済払い戻し ____________________________________________________________________________________ 24

決済払い戻しAPI ____________________________________________________________________________ 24

決済払い戻しAPI明細 _______________________________________________________________________ 24

決済払い戻しAPI使用例 _____________________________________________________________________ 25

付録 ______________________________________________ 26

LINE Pay エラーコード ____________________________________________________________________________ 26

6

PaymentUrl app 使用ガイド _______________________________________________________________________ 27

Androidアプリのサンプル ____________________________________________________________________ 27

iPhoneアプリのサンプル _____________________________________________________________________ 28

7

表および図リスト

表リスト

表 1 決済予約API Endpoint ________________________________________________________________ 15

表 2 決済予約予約パラメータ ______________________________________________________________ 15

表 3 決済予約APIレスポンス _______________________________________________________________ 18

表 4 決済承認API Endpoint ________________________________________________________________ 19

表 5 決済承認APIリクエストパラメータ ______________________________________________________ 19

表 6 決済承認APIレスポンス _______________________________________________________________ 20

表 7決済内訳照会API Endpoint _____________________________________________________________ 20

表 8 決済内訳照会APIレスポンス __________________________________________________________ 22

表 9 決済払い戻しAPI Endpoint ____________________________________________________________ 24

表 10 決済払い戻しAPIパラメータ __________________________________________________________ 25

表 11 決済払い戻しAPIレスポンス __________________________________________________________ 25

表 12 LINE Payエラーコード ________________________________________________________________ 26

図リスト

図 1 LINE Payの決済プロセス _____________________________________________________________ 9

図 2 加盟店登録プロセス __________________________________________________________________ 10

図 3 PCの決済予約 ________________________________________________________________________ 11

図 4 スマートフォン決済予約 _______________________________________________________________ 12

図 5 PC決済承認 __________________________________________________________________________ 12

図 6 スマートフォン決済承認 _______________________________________________________________ 13

図 7 決済履歴照会 ________________________________________________________________________ 13

図 8 決済払い戻し _________________________________________________________________________ 14

LINE Pay 技術連動ガイド

概要本章では、

LINE Pay

LINE Pay

済アプリ

加盟店が

ることができます。また、

LINE Pay

各種

有でき、ショップが独自に様々な

LINE Pay

いる必要があります。

技術連動ガイド(外部加盟店用

概要 本章では、LINE Pay

LINE Pay とは

LINE Payは、LINE

済アプリ (LINE Pay app

図 1 LINE Payの決済プロセス

加盟店がLINE Pay

ることができます。また、

LINE Payは、支払いに必要なすべてのプロセス

各種DBと連動可能なように設計されています。つまり、

有でき、ショップが独自に様々な

LINE Payを使用するユーザーが

いる必要があります。

外部加盟店用)

LINE Pay連動の基本概念について説明します。

LINEユーザーがLINE Pay

LINE Pay app)と決済が行われるサイト

の決済プロセス

LINE Pay加盟店に加入すると、

ることができます。また、LINEを通じて加盟店のマーケティングチャンネルが拡大

は、支払いに必要なすべてのプロセス

と連動可能なように設計されています。つまり、

有でき、ショップが独自に様々な

を使用するユーザーが

いる必要があります。

連動の基本概念について説明します。

LINE Pay加盟店サイトで使用できる決済システムです。

と決済が行われるサイト

加盟店に加入すると、LINE

を通じて加盟店のマーケティングチャンネルが拡大

は、支払いに必要なすべてのプロセス

と連動可能なように設計されています。つまり、

有でき、ショップが独自に様々なDB作業を行うことができます。

を使用するユーザーがLINE Payで決済するには、決済しようとするサイトが

9

連動の基本概念について説明します。

加盟店サイトで使用できる決済システムです。

と決済が行われるサイト(加盟店)に分けられます。

INEを使用している世界中の

を通じて加盟店のマーケティングチャンネルが拡大

は、支払いに必要なすべてのプロセスをショップのサーバーで処理されるため、容易に取引履歴を追跡し、

と連動可能なように設計されています。つまり、LINE

作業を行うことができます。

で決済するには、決済しようとするサイトが

加盟店サイトで使用できる決済システムです。

に分けられます。

を使用している世界中のLINE

を通じて加盟店のマーケティングチャンネルが拡大

ショップのサーバーで処理されるため、容易に取引履歴を追跡し、

LINEが保有している取引履歴と同じ取引履歴をショップが保

作業を行うことができます。

で決済するには、決済しようとするサイトが

加盟店サイトで使用できる決済システムです。LINE

に分けられます。

LINEユーザーを加盟店の顧客として誘致す

を通じて加盟店のマーケティングチャンネルが拡大し、売上の増加が期待できます。

ショップのサーバーで処理されるため、容易に取引履歴を追跡し、

が保有している取引履歴と同じ取引履歴をショップが保

で決済するには、決済しようとするサイトがLINE Pay

LINEユーザーが使用する決

ユーザーを加盟店の顧客として誘致す

し、売上の増加が期待できます。

ショップのサーバーで処理されるため、容易に取引履歴を追跡し、

が保有している取引履歴と同じ取引履歴をショップが保

LINE Pay加盟店に登録されて

ユーザーが使用する決

ユーザーを加盟店の顧客として誘致す

し、売上の増加が期待できます。

ショップのサーバーで処理されるため、容易に取引履歴を追跡し、

が保有している取引履歴と同じ取引履歴をショップが保

加盟店に登録されて

LINE Pay 技術連動ガイド(外部加盟店用)

10

LINE Pay 加盟店の登録プロセス

LINE Pay加盟店に登録すると、連動キーとテストキーが発行されます。加盟店登録プロセスは以下の通りです。

加盟店 LINE Pay 運営者

1.申請ページにアクセス(http://pay.line.me)

基本情報入力および書類提出 加盟店登録審査

手数料および精算周期の使用に対する同意、

本人確認PINコードの入力加盟店登録完了

1

2

4

3

5

登録完了メール送信6

図 2 加盟店登録プロセス

1. 申請ページ(http://pay.line.me)にアクセス

2. 基本情報入力および書類提出

3. 加盟店登録審査

4. 手数料および精算周期の使用に対する同意、本人確認PINコードの入力

5. 加盟店登録完了

6. 登録完了メール送信

LINE Pay 技術連動ガイド(外部加盟店用)

11

LINE Pay 連動

LINE Pay連動は、HTTPプロトコルとRestful API構造を使用します。リクエストおよびレスポンスのpayloadはJSON形

式でやりとりします。

• LINE Payの全連動プロセスは次の通りです。

• 決済予約

• 決済承認

• 決済履歴照会および払い戻し

• 自動決済および自動決済満了

自動決済連動は、自動決済使用審査を経た加盟店のみ使用可能です。

決済予約

決済予約のプロセスをPCとスマートフォンの場合に分けて説明します。

PC の決済予約

PCの決済予約プロセスは次の通りです。

図 3 PCの決済予約

1. 加盟店のサイトでLINEユーザーがLINE Pay決済方法を選択すると、加盟店ではLINE Pay決済予約APIを使用し

て決済予約をリクエストします。

2. LINE Payサーバーでは、決済予約情報を生成し、取引番号と“paymentUrl”を伝達します。取引番号は決済結果

伝達時に必要な情報として保存されなければなりません。

3. 伝達されたpaymentUrl(LINE pay提供)を呼び出します。

4. LINEユーザーを確認するためにchannel web login1プロセスを経た後、ログインに成功したらLINE PayからLINE

アプリに決済リクエストプッシュをリクエストします。

5. LINEユーザーはLINEアプリから決済リクエスト通知を確認し、決済画面に移動します。

スマートフォン決済予約

スマートフォン決済予約プロセスは次の通りです。

1 LINE 内サービスの利用に先立って、LINE ユーザーかどうかを確認するために経るプロセスです。

加盟店が LINE ユーザーの情報にアクセスすることができ、決済予約時に mid の伝達が可能であれば、channel web login プロセスを経る必要はありません。

LINE Pay 技術連動ガイド(外部加盟店用)

12

図 4 スマートフォン決済予約

1. 加盟店サイトでLINEユーザーがLINE Pay決済手段を選択すると、加盟店ではLINE Pay決済予約APIを使用して

決済予約をリクエストします。

2. LINE Payサーバーでは、決済予約情報を生成して取引番号と“paymentUrl”を伝達します。取引番号は決済結

果伝達時に必要な情報として保存されなければなりません。

3. 伝達されたpaymentUrl(LINE pay提供)を呼び出します。

4. LINEユーザーであることを確認するためにchannel web loginを経た後、LINEアプリの決済画面に移動します。

決済承認

LINEユーザーがLINE payで決済手段(クレジットカードor チャージ残高)を選択して決済を行うと、LINE payでは決済

予約時に受け取った “confirmUrl(transactionIdパラメータ追加)”に移動します。加盟店はconfirmUrlに移動後、LINE

Payに決済承認APIを呼び出し、決済を完了します。

決済承認の詳細プロセスをPCとスマートフォンの場合に分けて説明します。

PC 決済承認

PC決済承認プロセスは次の通りです。

図 5 PC決済承認

1. LINEアプリ決済画面で決済情報(取引予約データ、LINE Payアカウント、クレジットカード口座)の照会および認証

をリクエストします。

LINE Pay 技術連動ガイド(外部加盟店用)

13

2. LINE Payでは、決済手段情報を保存して決済ステータス情報を認証状態に変更した後、LINEアプリに認証結果

を伝達します。LINEユーザーはLINEアプリから認証完了画面を確認します。

3. LINE Pay決済待機画面で認証状態になると、加盟店の “confirmUrl”に移動します。

4. 加盟店はLINE Payに決済承認APIを呼び出します。

5. 加盟店は、LINE Payから決済結果レスポンスを受け取り、決済を完了します。

スマートフォンの決済承認

スマートフォンの決済承認プロセスは次の通りです。

図 6 スマートフォン決済承認

1. LINEアプリ決済画面で決済情報(取引予約データ、LINE Payアカウント、クレジットカード口座)照会および認証を

リクエストします。

2. LINE Payでは、決済手段情報を保存し、決済ステータス情報を認証状態に変更した後、LINEアプリに

“confirmUrl”を伝達します。

3. LINEユーザーはLINEアプリで認証完了画面を確認し、“confirmUrl”に移動する。

4. 加盟店はLINE Payに決済承認APIを呼び出す。

5. 加盟店はLINE Payから決済結果レスポンスを受け取り、決済を完了する。

決済履歴照会

LINE Pay加盟店で取引番号で決済履歴照会APIを呼び出すと、LINE Payサーバーが決済履歴を伝達します。

図 7 決済履歴照会

LINE Pay 技術連動ガイド(外部加盟店用)

14

決済払い戻し

LINE Pay加盟店から取引番号と払い戻しAPIを呼び出すとLINE Payサーバーが払い戻し処理を行います。

図 8 決済払い戻し

LINE Pay 技術連動ガイド(外部加盟店用)

15

LINE Pay API の使用方法 本章では、LINE Payとつなげる為の方法について詳細を説明します。連動に先立って加盟店認証情報は審査完了

後、メールまたは加盟店センター2を通じて確認することができます。

LINE Pay連動時に必要な認証情報は以下の通りです。

• channel id

• channel secret key

すべてヘッダーを通じて伝達され、各APIの明細で確認できます。

技術的な問い合わせや内部エラーが発生した場合、技術支援窓口([email protected])までお問い合

わせください。

決済予約

決済のための情報をLINE Payに予約します。

決済予約 API

LINE Payの決済に先立って加盟店が正しい加盟店なのか判断し、決済のための情報を予約します。決済予約が成

功すると、決済完了/払い戻し時まで使用されるキー値である「取引番号」を返します。

決済予約 API 明細

表 1 決済予約API Endpoint明細

項目 説明

Method POST

Required

Request Header

Content-Type: application/json; charset=UTF-8

X-LINE-ChannelId: {連動情報 - channelId}

X-LINE-ChannelSecret: {連動情報 - channelSecretKey}

Sandbox https://sandbox-api-pay.line.me/v1/payments/request

運営 https://api-pay.line.me/v1/payments/request

表 2 決済予約パラメータ

項目 データタイプ 必須 説明

productName String

(4000byte)

Y 商品名(charset:”UTF-8”)

2 加盟店センターは、LINE Pay 加盟店登録を完了した加盟店に対して、サービス提供状況の確認、取引履歴や入金履歴の閲覧、基本的な加盟店情報の修正、

1:1 問い合わせ等を提供するチャンネルです。

LINE Pay 技術連動ガイド(外部加盟店用)

16

項目 データタイプ 必須 説明

productImageUrl String

(500byte)

N 商品画像 URL

決済画面に表示される画像 URL

� サイズ: 84 x 84(決済画面にのみ表示される画像。ガイドの

通り表示させることを推奨)

Amount decimal3 Y 決済金額

Currency String

(3byte)

Y 決済通貨 (ISO 4217)

対応可能な通貨は以下の通りです。

� USD

� JPY

Mid String

(50byte)

N LINE member ID

� 加盟店が LINE ユーザを特定できる固有 ID です。

confirmUrl String

(500byte)

Y LINE Pay で決済認証完了後に移動する加盟店 URL

� 該当 URL に移動後、加盟店では決済 confirm API を呼び

出して決済を完了することができます。

� 加盟店から受け取った URL に移動します。

� LINE Pay からは「transactionId」をパラメータで返却します。

cancelUrl String

(500byte)

N LINE Pay で決済キャンセル後に移動する加盟店 URL

� LINE app 決済画面でユーザーが決済をキャンセルすると移

動する URL(加盟店がスマートフォンでアクセスした場合、キ

ャンセル時に加盟店アプリまたはウェブに移動するための U

RL)

� 加盟店から受け取った URL に移動します。

orderId String

(100byte)

Y 加盟店での該当決済予約件に対する注文番号

� 加盟店で管理されるユニークな番号です。

deliveryPlacePhone String

(100byte)

N 受取人連絡先 (for Risk Management)

payType String

(10byte)

N 決済タイプ

� NORMAL: 単一決済 (基本値)

3 小数点が可能な数字型データタイプ

LINE Pay 技術連動ガイド(外部加盟店用)

17

項目 データタイプ 必須 説明

langCd String N 決済待機画面(“paymentUrl”)言語設定コード

- ja : 日本語

- ko : 韓国語

- en : 英語

- zh-Hans : 中国語(簡体字)

- zh-Hant : 中国語(繁体字)

- th : タイ語

* 6 カ国語に対応

*送信が必須ないか、送信されない場合には accept-language

header 値を参照し、多言語対応する。

* 対応していない langCd が送信される場合には、英語 (“en”)

をデフォルトで使用する。

* BCP-47 形式 :

http://en.wikipedia.org/wiki/IETF_language_tag

LINE Pay 技術連動ガイド(外部加盟店用)

18

表 3 決済予約APIレスポンス

項目 データタイプ 説明

returnCode String

(4byte)

結果コード

� 0000: 成功

� 1104: 加盟店が存在しません。

� 1105: 加盟店のステータスが正常ではありません。

� 1106: header 情報エラー

� 1124: 金額情報エラーです。(scale).

� 1145: 決済中です。

� 1178: 対応していない通貨です。

� 1194: 自動決済を使用できない加盟店です。

� 2101: パラメータエラー

� 2102: JSON データフォーマットエラー

� 9000 : 内部エラー

returnMessage String 結果メッセージまたは失敗の理由。例えば次のような内容。

� 決済不可能な加盟店

� 加盟店認証情報エラー

info.transactionId Number 取引番号 (19 桁)

info.paymentUrl.web String 決済依頼後、移動する Web URL

� 決済予約が web 環境で行われた場合に使用

� LINE Pay 決済待機画面に移動するための URL

� 別途のパラメータがなく伝達された URL にそのまま移動

info.paymentUrl.app string. 決済画面移動 app url

� App ベースで決済予約が行われた場合に使用

� 加盟店 app から LINE にアプリ間移動するための URL

� app url 使用時に必要なサンプルコードは付録を参照

決済予約 API 使用例

決済予約 API リクエスト例

{

“productName” : “test product”, “productImageUrl” : “http://testst.com”, “amount” : 10, “currency” : “USD”, “mid” : “os89dufgoiw8yer9021384rdfeq”,

“orderId” : “20140101123456789”,

“confirmUrl” : “naversearchapp://inappbrowser?url=

http%3A%2F%2FtestMall.com%2FcheckResult.nhn%3ForderId%3D20140101123456789”, “cancelUrl” : “naversearchapp://inappbrowser?url=

http%3A%2F%2FtestMall.com%2ForderSheet.nhn%3ForderId%3D20140101123456789” }

決済予約 API レスポンス例

{

“returnCode” : “0000”,

“returnMessage” : “OK”:,

“info” : {

LINE Pay 技術連動ガイド(外部加盟店用)

19

“transactionId” : “123123123123”,

“paymentUrl” : {

“web” : “http://web-pay.line.me/web/wait?transactionReserveId=blahblah”,

“app” : “line://pay/payment/blahblah”

}

}

}

決済承認

LINE Payでユーザーは決済手段を選択し、認証を完了します。認証完了後、決済予約時に伝達された “confirmUrl”

を通じてLINEから加盟店に移動します。決済承認APIを呼び出す際、API urlに“transactionId”(決済予約APIレスポ

ンス値)が必須で伝達される必要があります。

決済承認 API

加盟店が決済を最終的に完了させるためのAPIです。加盟店は決済承認APIを呼び出すことによって実際の決済が

完了します。

決済承認 API 明細

表 4 決済承認API Endpoint明細

項目 説明

Method POST

Required

Request Header

Content-Type: application/json; charset=UTF-8

X-LINE-ChannelId: {連動情報 - channelId}

X-LINE-ChannelSecret: {連動情報 – channelSecretKey}

Sandbox https://sandbox-api-pay.line.me/v1/payments/{ transactionId }/confirm

運営 https://api-pay.line.me/v1/payments/{ transactionId }/confirm

表 5 決済承認APIリクエストパラメータ

項目 データタイプ 必須 説明

Amount decimal Y 決済金額

Currency string

(3byte)

Y 決済通貨 (ISO 4217)

対応可能な通貨は以下の通りです。

� USD

� JPY

LINE Pay 技術連動ガイド(外部加盟店用)

20

表 6 決済承認APIレスポンス

項目 データタイプ 説明

returnCode String

(4byte)

結果コード

� 0000: 成功

� 1104: 加盟店が存在しません。

� 1105: 加盟店のステータスが正常ではありません。

� 1106: ヘッダー情報エラー

� 1281: クレジットカード決済エラー

� 1282: クレジットカード承認エラー

� 1283: 不正使用が疑われるため決済が拒否されました。

� 1284: クレジットカード決済が一時的に中断されました。

� 1285: クレジットカード決済情報漏れ

� 1286: クレジットカードの決済情報が正しくありません。

� 1287: クレジットカードの有効期限が過ぎています。

� 1288: クレジットカード決済口座の残高が不足していま

す。

� 1289: クレジットカード限度超過

� 1290: クレジットカード1件あたりの決済限度超過

� 1291: 盗難申告されたカードです。

� 1292: 使用が停止されたカードです。

� 1293: CVN 入力エラー

� 1294: ブラックリストに登録されたカードです。

� 1295: クレジットカード番号が正しくありません。

� 1296: 処理できない金額です。

� 1297: すでに取引が進行中です。

� 1298: カード使用が拒否されました。

� 9000 : 内部エラー

returnMessage String 結果メッセージまたは失敗の理由。例えば次のような内容。

� 決済不可能な加盟店

� 加盟店認証情報エラー

info.orderId String 決済予約時、加盟店から伝達した注文番号

info.transactionId number 決済予約時、結果として伝達された取引番号(19 桁)

info.payInfo[].method String 決済時に使用された決済手段(クレジットカード:

CREDIT_CARD, チャージ残高: BALANCE)

info.payInfo[].amount decimal 決済金額

LINE Pay 技術連動ガイド(外部加盟店用)

21

決済承認 API 使用例

決済承認 API リクエスト例

POST https:// api-pay.line.me /v1/payments/sdhqiwouehrafdasrqoi123as/confirm HTTP/1.1

Content-Type: application/json

{“amount”:1000,”currency”:”JPY”

決済承認 API レスポンス例

{

“returnCode” : “0000”,

“returnMessage” : “OK”:,

“info” : {

“orderId” : “order_210124213”:,

“transactionId” : “20140101123123123”,

“payInfo” : [

{“method” : “BALANCE”, amount” : 10},

{“method” : “CREDIT_CARD”, amount” : 10}

]

}

}

決済履歴

決済履歴照会 API

LINE Payで決済された決済案件を照会します。

決済履歴照会 API 明細

表 7決済内訳照会API Endpoint明細

項目 説明

Method GET

Required

Request Header

Content-Type: application/json; charset=UTF-8

X-LINE-ChannelId: {連動情報 – channelId}

X-LINE-ChannelSecret: {連動情報 – channelSecretKey}

sandbox https://sandbox-api-pay.line.me/v1/payments?transactionId={transactionId}&

transactionId={transactionId}&transactionId={transactionId}…

運営 https://api-pay.line.me/v1/payments?transactionId={transactionId}&

transactionId={transactionId}&transactionId={transactionId}…

* transactionIdは、払い戻し/決済取引番号(最大100件の取引番号を照会可能)を意味します。

LINE Pay 技術連動ガイド(外部加盟店用)

22

表 8 決済内訳照会APIレスポンス

項目 データタイプ 説明

returnCode string

(4byte)

結果コード

� 0000: 成功

� 1104: 加盟店が存在しません。

� 1105: 加盟店のステータスが正常ではありません。

� 1106: ヘッダー情報エラー

� 1150: 取引履歴が存在しません。

� 1177: 照会可能な最大取引数を超過(100 件)

� 9000 : 内部エラー

returnMessage string 結果メッセージまたは失敗の理由

info[].transactionId number 取引番号(19 桁)

info[].transactionDate string 取引日時 (ISO 8601)

info[].transactionType string 取引区分

� PAYMENT: 決済

� PAYMENT_REFUND : 払い戻し

� PARTIAL_ REFUND : 一部払い戻し

Info[].payInfo[].method string 決済時に使用された決済手段 (クレジットカード: CREDIT_CARD, チ

ャージ残高: BALANCE)

info[].payInfo[].amount decimal 取引金額(取引番号発生時に取引された取引金額)

原決済取引を照会する際の最後の取引金額は

sum(info[].payInfo[].amount) – sum(refundList[].refundAmount)となり

ます。

Info[].productName string 商品名

info[].currency string 通貨(ISO 4217)

info[].orderId string 加盟店注文番号

info[].refundList[].refundTran

sactionId

number 払い戻し取引番号(19 桁)

info[].refundList[].transaction

Type

string 取引区分

� PAYMENT_REFUND : 払い戻し

� PARTIAL_REFUND : 一部払い戻し

info[].refundList[].refundAmo

unt

decimal 払い戻し金額

info[].refundList[].refundTran

sactionDate

string 払い戻し取引日時 (ISO 8601)

払い戻し取引照会時

info[].originalTransactionId number 原決済取引番号 (19 桁)

LINE Pay 技術連動ガイド(外部加盟店用)

23

決済履歴照会 API 使用例

決済履歴照会 API レスポンス例(原決済取引照会時)

{

“returnCode”:”0000”,

“returnMessage”:”success”,

“info”:[{

“transactionId”:1020140728100001997,

“transactionDate”:”2014-07-28T09:48:43Z”,

“transactionType”:”PAYMENT”,

“payInfo”: [

{“method”:”BALANCE”, “amount”:10},

{“method”:”CREDIT_CARD”, “amount”:10}

],

“productName”:”tes production”,

“currency”:”USD”,

“orderId”:”20140101123123123”,

“refundList”:[

{

“refundTransactionId”:”20213901923123”,

“transactionType”:”PARTIAL_REFUND”,

“refundAmount”:-1,

“refundTransactionDate”:”2014-07-28T09:48:52Z”

},

{

“refundTransactionId”:”20213901923123”,

“transactionType”:”PARTIAL_REFUND”,

“refundAmount”:-1,

“refundTransactionDate “:”2014-07-28T09:49:28Z”

},

{

“refundTransactionId”:”20213901923123”,

“transactionType”:”PARTIAL_REFUND”,

“refundAmount”:-1,

“refundTransactionDate “:”2014-07-28T09:53:18Z”

}

]

}]

}

決済履歴照会 API レスポンス例(払い戻し照会時)

{

“returnCode”:”0000”,

“returnMessage”:”success”,

“info”:[{

“transactionId”:1020140728100001997,

“transactionDate”:”2014-07-28T09:48:43Z”,

“transactionType”:”PARTIAL_REFUND”,

“amount”:-5,

“productName”:””,

“currency”:”USD”,

“orderId”:”20140101123123123”,

“originalTransactionId”:1020140728100001999

}]

}

LINE Pay 技術連動ガイド(外部加盟店用)

24

決済払い戻し

決済払い戻し API

LINE Payで決済された決済案件の払い戻しをリクエストします。払い戻し時、LINE Payユーザーの決済取引番号の

送信は必須で、決済払い戻し金額に応じて一部払い戻しが可能です。

決済払い戻し API 明細

表 9 決済払い戻しAPI Endpoint明細

項目 説明

method POST

Required

Request Header

Content-Type: application/json; charset=UTF-8

X-LINE-ChannelId: {連動情報 – channelId}

X-LINE-ChannelSecret: {連動情報 – channelSecretKey}

sandbox https://sandbox-api-pay.line.me/v1/payments/{transactionId}/refund

運営 https://api-pay.line.me/v1/payments/{transactionId}/refund

* transactionIdは決済取引番号を意味します。

LINE Pay 技術連動ガイド(外部加盟店用)

25

表 10 決済払い戻しAPIパラメータ

項目 データタイプ 必須 説明

refundAmount decimal N 払い戻し金額

- 送信されない場合はすべて払い戻し

表 11 決済払い戻しAPIレスポンス

項目 データタイプ 説明

returnCode string

(4byte)

結果コード

� 0000: 成功

� 1102: 購入したユーザーが取引不可能な状態です。

� 1104: 加盟店が存在しません。

� 1105: 加盟店のステータスが正常ではありません。

� 1106: header 情報エラー

� 1150: 取引履歴が存在しません。

� 1155: 払い戻しできない取引タイプの取引番号です。

� 1164: 払い戻し金額が最後の取引金額を超過しました。

� 1165: すでに払い戻し済みの取引です。

� 9000 : 内部エラー

returnMessage string 結果メッセージまたは失敗理由

info.refundTransactionId number 払い戻し取引番号(新規発行-19 桁)

info.refundTransactionDate string 払い戻し取引日時(ISO 8601)

決済払い戻し API 使用例

決済払い戻し API リクエスト例

//一部払い戻しの場合

{

“refundAmount” : 1000

}

// 全額払い戻しの場合

{}

決済払い戻し API レスポンス例

{

“returnCode” : “0000”,

“returnMessage” : “OK”,

“info” : {

“refundTransactionId” : 123123123123,

“refundTransactionDate” : “2014-01-01T06:17:41Z”,

}

}

LINE Pay 技術連動ガイド(外部加盟店用)

26

付録

LINE Pay エラーコード

LINE Payで発生するエラーコードについて定義します。エラーコードに対するreturnMessageは英語で提供され、別

途メッセージがない場合にはハイフン(-)が送信されます。

表 12 LINE Payエラーコード

コード

(returnCode)

説明(300byte)

1102 購入ユーザーが取引不可能な状態です。

1104 加盟店が存在しません。

1105 加盟店のステータスが正常ではありません。

1106 header 情報エラー

1124 金額情報エラーです。 (scal)

1145 決済中です。

1150 取引履歴が存在しません。

1154 自動決済口座のステータスが正常ではありません。

1155 払い戻しできない取引タイプの取引番号です。

1164 払い戻し金額が最後の取引金額を超過しています。

1165 すでに払い戻し済みの取引です。

1177 照会可能な最大取引件数を超過 (100 件)

1178 加盟店が対応していない通貨です。

1183 決済金額は0より大きくなければなりません。

1190 自動決済キーが存在しません。

1193 自動決済キーが満了となりました。

1194 自動決済を使用できない加盟店

1197 自動決済キーですでに決済中です。

1281 クレジットカード決済エラー

1282 クレジットカード承認エラー

1283 不正使用が疑われるため決済が拒否されました。

1284 クレジットカード決済が一時的に中断されました。

1285 クレジットカード決済情報漏れ

1286 クレジットカードの決済情報が正しくありません。

1287 クレジットカードの有効期限が過ぎています。

1288 クレジットカードの決済銀行残高が不足しています。

1289 クレジットカードの限度超過

1290 クレジットカード1件あたりの決済限度超過

LINE Pay 技術連動ガイド(外部加盟店用)

27

コード

(returnCode)

説明(300byte)

1291 盗難申告されたカードです。

1292 使用が停止されたカードです。

1293 CVN 入力エラー

1294 ブラックリストに登録されたカードです。

1295 クレジットカード番号が正しくありません。

1296 処理できない金額です。

1297 すでに取引が進行中です。

1298 カード使用が拒否されました。

2101 パラメータエラー

2102 JSON データフォーマットエラー

9000 内部エラー

内部エラー (“returnCode : 9000”)発生時には技術連動支援([email protected]) までお問い合わせく

ださい。

PaymentUrl app 使用ガイド

加盟店appで決済リクエストした後、LINE appにアプリ間移動するためのガイドです。

Android アプリのサンプル

下記のサンプルコードでLINEアプリのインストールの有無と使用可能なLINE Payのバージョン確認できます。下記

の条件を満たす場合、LINE Pay決済画面に移動します。

int linePaySupportedVersion = 230; String paymentUrl = "..."; // This is "paymentUrl.app" URL string. Context context = getActivity(); try { PackageManager pm = context.getPackageManager(); PackageInfo packageInfo = pm.getPackageInfo("jp.naver.line.android", 0); int versionCode = packageInfo.versionCode; if (linePaySupportedVersion <= versionCode) { launchUri(paymentUrl); } else { confirmLineInstall(context); } } catch (NameNotFoundException e) { confirmLineInstall(context); } private void confirmLineInstall(Context context) { new AlertDialog.Builder(context) .setTitle("LINE Pay") .setMessage(getString(R.string.linepay_confirm)) .setCancelable(false) .setPositiveButton(getString(R.string.linepay_install), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { launchUri("market://details?id=jp.naver.line.android"); } })

LINE Pay 技術連動ガイド(外部加盟店用)

28

.setNegativeButton(getString(R.string.linepay_cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .show(); } private void launchUri(String uriString) { Uri uri = Uri.parse(uriString); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }

File : res/values/strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> ... <string name="linepay_confirm">Supported by Android/iPhone LINE versions 4.8.0 or higher.</string> <string name="linepay_install">Get it now</string> <string name="linepay_cancel">cancel</string> ... </resources>

iPhone アプリのサンプル

下記のサンプルコードでLINEアプリのインストールの有無を確認することができます。下記の条件を満たす場合、

LINE Pay決済画面に移動します。

NSString* lineScheme = @"line://"; BOOL installed = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:lineScheme]]; if (installed) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"LINE Pay" message:NSLocalizedString(@"linepay.confirm", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"linepay.ok", nil) otherButtonTitles:nil]; alert.tag = 1; [alert show]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"LINE Pay" message:NSLocalizedString(@"linepay.confirm", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"linepay.cancel", nil) otherButtonTitles:NSLocalizedString(@"linepay.install", nil), nil]; alert.tag = 2; [alert show]; } - (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (alertView.tag == 1 && buttonIndex == 0) { NSString *paymentUrl = ...; // This is "paymentUrl.app" URL string. [self launchUrl:paymentUrl]; } else if (alertView.tag == 2 && buttonIndex == 1) { [self launchUrl:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=443904275&mt=8"]; } } - (void)launchUrl:(NSString*)urlString { NSURL *url = [NSURL URLWithString:urlString]; [[UIApplication sharedApplication] openURL:url]; }

LINE Pay 技術連動ガイド(外部加盟店用)

29

File : en.lproj/Localized.strings "linepay.confirm" = "Supported by Android/iPhone LINE versions 4.8.0 or higher."; "linepay.ok" = "OK"; "linepay.cancel" = "Cancel"; "linepay.install" = "Get it now";