agentsclimarketplace

Shopline payments skill

Skill boyonglin/shopline-payments-skill

USE WHEN: 用戶詢問 SHOPLINE Payments 金流串接、導轉式付款流程、建立結帳交易(sessionUrl)、 returnUrl 回跳處理、Webhook 簽章驗證、交易查詢、退款/請款/取消操作, 或整合 LINE Pay、信用卡、ATM、街口支付(JKO)等台灣在地付款方式。 DO NOT USE WHEN: 詢問其他金流服務(如綠界 ECPay、藍新 NewebPay、TapPay)、 非台灣地區金流、或 SHOPLINE 電商平台非金流相關功能。From its SKILL.md

Install
npx -y skills add boyonglin/shopline-payments-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 2 credential sources: `process.env.SHOPLINE_MERCHANT_ID` and 1 more.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • fetches URLsInstructs the agent to fetch 1 URL, including https://api-sandbox.shoplinepayments.com/api/v1/trade/sessions/create.

SKILL.md

7.3 KB, ~2.6k tokens by cl100k_base, as published. Nobody here has run it

SHOPLINE Payments 金流串接指南

此技能提供 SHOPLINE Payments 金流串接的完整文檔與程式碼範例。

概述

SHOPLINE Payments 提供兩種串接方式:

串接方式說明適用場景
導轉式透過 API 取得付款頁 URL,導轉顧客至 SHOPLINE 付款頁串接簡單,適合快速整合
內嵌式透過 SDK + API 將付款表單內嵌於特店網站(詳見 references/embedded.md)支援綁卡/快捷/定期交易等進階功能

環境設定

環境 URL

環境Base URL
沙盒環境https://api-sandbox.shoplinepayments.com
正式環境https://api.shoplinepayments.com

必要金鑰

金鑰用途
merchantId特店 ID
apiKeyServer API 串接認證
clientKeySDK 串接認證(內嵌式使用)
signKeyWebhook Event 通知簽章驗證

文檔結構

根據用戶需求,參考以下文檔:

需求文檔說明
建立結帳交易references/redirect.md導轉式結帳交易 API
內嵌式串接references/embedded.mdSDK + API 內嵌式串接指南
查詢交易references/query.md查詢結帳/付款交易狀態
退款references/refund.md建立退款交易
請款/取消references/capture-cancel.md信用卡請款與取消授權
Webhookreferences/webhook.md事件通知與簽章驗證
錯誤碼references/error-codes.md錯誤碼完整參考
沙盒測試references/sandbox.md測試卡號與測試規則
付款方式references/payment-methods.md支援的付款方式說明

工作流程

導轉式串接流程(本專案主要使用)

1. 特店後端呼叫「建立結帳交易」API
2. 取得 sessionUrl
3. 前端導轉顧客至 sessionUrl(SHOPLINE 付款頁)
4. 顧客完成付款後自動導回 returnUrl
5. 特店透過 Webhook 接收付款結果
6. (建議)主動查詢交易狀態二次確認

內嵌式串接流程

1. 前端引入 JS SDK(NPM 或 CDN)
2. 初始化 SDK 並呈現收銀台
3. 顧客填寫付款資訊並點擊結帳
4. SDK 建立 paySession
5. 後端呼叫「建立付款交易」API(帶入 paySession)
6. 前端呼叫 payment.pay(nextAction) 發起付款
7. 完成 3D 驗證(如需要)後導回 returnUrl
8. 透過 Webhook 接收付款結果

完整內嵌式串接說明請參考 references/embedded.md

API 認證機制

所有 Server-API 請求必須包含以下 HTTP Header:

Content-Type: application/json
merchantId: <YOUR-MERCHANT-ID>
apiKey: <YOUR-API-KEY>
requestId: <UNIQUE-REQUEST-ID>

補充:若為平台特店(Platform Connect)請另外帶入 platformId;建議在「建立結帳交易」等具冪等需求的請求帶入 idempotentKey,避免重複下單。

快速範例

JavaScript - 建立結帳交易

async function createCheckoutSession(orderData) {
  const response = await fetch('https://api-sandbox.shoplinepayments.com/api/v1/trade/sessions/create', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'merchantId': process.env.SHOPLINE_MERCHANT_ID,
      'apiKey': process.env.SHOPLINE_API_KEY,
      'requestId': Date.now().toString()
    },
    body: JSON.stringify({
      referenceId: orderData.orderId,
      amount: { value: orderData.amount * 100, currency: 'TWD' },
      returnUrl: orderData.returnUrl,
      mode: 'regular',
      allowPaymentMethodList: ['CreditCard', 'LinePay'],
      customer: {
        personalInfo: {
          firstName: orderData.name,
          email: orderData.email,
          phone: orderData.phone
        }
      },
      client: { ip: orderData.clientIp }
    })
  });
  return await response.json();
}

程式碼範例

完整的程式碼範例請參考:

重要注意事項

  1. 金額格式:台幣金額需 × 100(如 100 元傳入 10000)
  2. 訂單號唯一:referenceId 不可重複
  3. HTTPS 必須:所有 API 請求必須使用 HTTPS
  4. 金鑰保密:apiKey 和 signKey 不可暴露在前端
  5. 退款時效:付款交易可退款時效為 180 天
  6. 取消授權:只能在請款前取消,請款後只能退款

Troubleshooting

金額格式錯誤 (Error 1004)

問題:收到 1004 Param error 原因:金額未轉換為「分」 解決:amount.value = 實際金額 * 100(如 100 元傳 10000)

重複訂單號 (Error 1001)

問題:收到 1001 Order exist 原因:referenceId 已被使用 解決:確保每筆訂單使用唯一的 referenceId

API 認證失敗 (Error ACCESS_DENIED)

問題:收到 ACCESS_DENIED 原因:

  1. apiKey 或 merchantId 錯誤
  2. 使用沙盒金鑰呼叫正式環境(或反之) 解決:確認金鑰正確且環境對應

Webhook 收不到通知

問題:付款完成後未收到 Webhook 原因:

  1. Webhook URL 未設定(需聯繫 SLP 窗口申請)
  2. URL 非 HTTPS
  3. 伺服器防火牆阻擋
  4. 回應非 HTTP 200 解決:確認 URL 可公開存取並回應 200

Webhook 簽章驗證失敗

問題:簽章比對不符 原因:

  1. signKey 錯誤
  2. payload 組合方式錯誤(應為 timestamp.bodyString)
  3. body 被解析後重新序列化導致格式改變 解決:使用原始 body 字串進行簽章計算

沙盒測試一直失敗

問題:測試交易都失敗 原因:金額不符合測試規則 解決:

  • 非 3D 交易:金額去掉 00 後為奇數才會成功(如 101, 501)
  • 3D 交易:金額為 3 的倍數進入 3D 流程(如 300, 600)

退款失敗 (Error 1014/4701)

問題:收到「無可退款金額」或「退款金額超過可退金額」 原因:

  1. 已全額退款
  2. 退款金額超過原交易可退金額 解決:查詢原交易確認可退款金額

取消授權失敗 (Error 6002)

問題:收到「交易已請款,無法取消」 原因:已請款的交易無法取消授權 解決:請款後只能使用「退款」功能

What ships with it: 16 files

98.3 KB alongside SKILL.md, 3 of them executable

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.