1 of 12

每天五分鐘

LINE API 輕鬆上手 #29

LINE也可以做金流

2019@RenZhou

LINE Pay 透過套件輕鬆實作(API v3)

2 of 12

有套件不早點拿出來

害我搞 API 搞那麼辛苦

3 of 12

改來改去太麻煩了,所以就自己寫一個

主要解決自己在那邊串各種不同API,同時還要煩惱header正不正確的困擾

3

4 of 12

先來安裝

先開個新資料夾,然後建立一個 index.js

這裏一樣是 npm 的套件,就用 npm 裝

然後記得引入哦

4

npm install --save line-pay-v3

const LinePay = require('line-pay-v3')

5 of 12

然後帶入自己的 channel 資料

把資料都填上去

5

const linePay = new LinePay({

channelId: YOUR_CHANNEL_ID,

channelSecret: YOUR_CHANNEL_SECRET,

uri: 'https://sandbox-api-pay.line.me'

})

6 of 12

來建立一筆訂單看看

先準備一個隨意的訂單或是你自己的也可以

6

const order = {

amount: 4000,

currency: 'TWD',

orderId: 'Order2019101500001',

packages: [

{

id: 'Item20191015001',

amount: 4000,

name: 'testPackageName',

products: [

{

name: 'testProductName',

quantity: 2,

price: 2000

}

]

}

],

redirectUrls: {

confirmUrl: 'https://example.com/confirmUrl',

cancelUrl: 'https://example.com/cancelUrl'

}

}

7 of 12

來建立一筆訂單看看

直接呼叫套件的 function , 新建訂單的API是 request

然後用 then 來接他回傳後的值

到這裡建立訂單的步驟就完成了

7

linePay.request(order).then(res => {

console.log(res)

})

8 of 12

執行它!

再來在終端機下 node index.js 的指令就會執行了

你的訂單資料沒有錯誤,就會拿回帶有paymentUrl的訊息 (如下)

所以到剛剛為止,我們只需要準備訂單資料就好了,是不是省超多工的

8

{

returnCode: '0000',

returnMessage: 'Success.',

info: {

paymentUrl: {

web: 'https://sandbox-web-pay.line.me/web/pay...,

app: 'line://pay/payment/WHZLWWx2Q1N4N123...'

},

transactionId: 2019101500070288100,

paymentAccessToken: '734499195570'

}

}

9 of 12

來試試 confrimAPI

10 of 12

那來試試confrimAPI

正常我們會用 express 等等架伺服器去接 confrimURL 的值

至於怎麼做就讓大家去思考

這邊我們拿到了剛剛 confrimURL 的 transationID 就直接來把他 confrim 吧

還記得 confirm API 嗎,記得金額跟數量要跟訂單一樣喔

10

linePay.confrim({ amount: 4000, currency: 'TWD'}, '2019101500070289510').then(res => {

console.log(res)

})

11 of 12

執行它!

這邊先把剛剛新建訂單的註解掉

然後在終端機下 node index.js , 就完成啦

11

{

returnCode: '0000',

returnMessage: 'Success.',

info: {

transactionId: 2019101500070289400,

orderId: 'Order201910150320001',

payInfo: [ [Object] ],

packages: [ [Object] ]

}

}

12 of 12

其他的API也都如法炮製

是不是很輕鬆啊