LinePay 支付完成後返回 LINE 應用而不跳出外部瀏覽器

.NET 開發 LINE LIFF 和 LINE Pay 整合的應用,並希望支付完成後返回 LINE 應用而不跳出外部瀏覽器,可以根據以下步驟進行調整:

1. 使用內嵌結帳模式

在 .NET 中使用 LINE Pay API 時,可以通過設置 API 請求的參數來控制支付流程。內嵌結帳模式允許用戶在 LINE 應用內完成支付,而無需跳出到外部瀏覽器。

1.1 設定支付請求中的 capture 參數

在呼叫 LINE Pay API 的 .NET 程式碼中,設置 captureconfirmfalse,然後進行後續支付流程控制。這樣可以啟用「內嵌結帳」模式:

var requestBody = new
{
    amount = 1000,
    currency = "JPY",
    orderId = "order12345",
    packages = new[]
    {
        new
        {
            id = "package123",
            amount = 1000,
            name = "Sample Package",
            products = new[]
            {
                new { id = "product123", name = "Sample Product", quantity = 1, price = 1000 }
            }
        }
    },
    redirectUrls = new
    {
        confirmUrl = "https://yourdomain.com/linepay/confirm",
        cancelUrl = "https://yourdomain.com/linepay/cancel"
    },
    options = new
    {
        payment = "capture=false" // 開啟內嵌結帳模式
    }
};

// 呼叫 LINE Pay API(假設已經建立 HttpClient)
var content = new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("https://api-pay.line.me/v3/payments/request", content);

2. 設置回調 URL 回到 LIFF 應用

支付完成後,可以使用 LIFF 協議 liff://app/{LIFF_ID} 作為 confirmUrl,這樣用戶在支付完成後會返回到 LIFF 頁面而不是啟動外部瀏覽器。

2.1 設置 confirmUrl 參數

當建立支付請求時,將 redirectUrls.confirmUrl 設置為 LIFF 應用的 URL:

這樣,當用戶完成支付後會直接返回到 LIFF 頁面而不會啟動外部瀏覽器。

3. 使用 .NET API 來確認支付

支付完成後,可以在您的 .NET 應用中確認支付結果並返回支付狀態給 LIFF 應用。可以設置一個 API 端點來接收支付狀態,並在 LIFF 中用 JavaScript 呼叫此端點檢查支付狀態。

4. 在 LIFF 中自動檢查支付結果

支付完成返回到 LIFF 頁面後,可以使用 JavaScript 自動檢查支付狀態並顯示結果。

這樣可以在支付完成後,讓用戶自動回到 LINE 應用中的 LIFF 畫面並檢查支付結果。

Last updated