メインコンテンツまでスキップ
Markdownをコピー

メルカリアプリ起動 開発ガイド

概要

メルペイでは、お客様をメルカリアプリへリダイレクトする際に、以下の2つの方式から選択できます。

  • WEB_LINK / WEB方式:ブラウザ経由でメルカリアプリを起動
  • APP_LINK / APP方式:加盟店様がご提供のアプリからメルカリアプリを直接起動

本ガイドでは、各接続方式での設定方法と実装例を説明します。

接続方式別の設定

OpenAPIタイプ

OpenAPIタイプでは、Pay払いの決済事業者へのリダイレクト方式を指定します。

都度支払いの場合

都度支払い(/wallet/chargeAPI の Pay払いの決済事業者へのリダイレクト方式(walletInformation.walletChargeOptions.transitionType) で指定します。

利用承諾の場合

利用承諾(/wallet/authorizeAccountAPI の Pay払いの決済事業者へのリダイレクト方式(walletAuthorizationInformation.walletAuthorizationOptions.transitionType) で指定します。

transitionType の値

説明
WEB_LINKPay払いの決済事業者にリダイレクトする外部ブラウザのリンク。省略時のデフォルト値です。
APP_LINKPay払いの決済事業者のモバイルアプリリンク。ご提供のアプリからメルカリアプリを直接起動します。
実装方法はAPP_LINK方式を参照してください。

プロトコルタイプ

決済実行(ExecTranMerpayAPIUserInfo(ユーザー端末情報)で、お客様端末の情報を指定します。

都度決済、利用承諾のいずれの場合でも、同じAPIとパラメータを使用します。

方式説明
1WEBレスポンスの支払手続き開始IFのURL(StartURL)に設定される当サービスのURLを実行すると、
ブラウザを経由してメルカリアプリが起動します。
※環境によってはメルカリアプリを起動できない可能性があります。
省略時のデフォルト値です。
2APPレスポンスの支払手続き開始IFのURL(StartURL)にメルカリアプリを指定します。
ご提供のアプリから起動処理を記述してください。
実装方法はAPP_LINK方式を参照してください。

APP_LINK または UserInfo=2:APP を指定した場合、レスポンスから以下のURLを取得してメルカリアプリを起動してください。

接続方式レスポンスのフィールド名
プロトコルタイプStartURL
OpenAPIタイプredirectInformation.redirectUrl

iOS ネイティブ実装

お客様がメルペイでの支払いを選択した時点で、UIApplication.open() を利用してURLを開いてください。

// startUrl: プロトコルタイプの場合は StartURL、
// OpenAPIタイプの場合は redirectInformation.redirectUrl
if let url = URL(string: startUrl) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

iOS WKWebView 実装

iOS 9以降では、URLを開くとデフォルトで Universal Links が機能し、メルカリアプリが起動します。

iOS 9未満の場合や、メルカリアプリのインストール状況によっては、稀に Universal Links が機能せず、URLがWKWebView内で表示されることがあります。この場合、ページ内に mercari://app/... で始まるURLをリンク先にしたボタンが表示されます。WKNavigationDelegate でこのURLへの遷移を検知し、明示的にメルカリアプリを起動してください。

class WKWebViewNavigationDelegateImplementation: NSObject, WKNavigationDelegate {
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

if let url = navigationAction.request.url, url.scheme?.lowercased() == "mercari" {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
decisionHandler(.cancel)
} else {
decisionHandler(.allow)
}
}
}

Android ネイティブ実装

URLを開く IntentContext#startActivity に渡してください。
このとき、メルカリアプリが App Links で起動できるかを事前に確認してください。

public class NetpaymentLauncher {
// startUrl: プロトコルタイプの場合は StartURL、
// OpenAPIタイプの場合は redirectInformation.redirectUrl
public void launchNetpayment(Context context, String startUrl) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(startUrl));
intent.setPackage("com.kouzoh.mercari");
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (doesHandlerExist(intent, context.getPackageManager())) {
context.startActivity(intent);
}
}

// App Links を処理可能なメルカリアプリがインストールされているかどうかチェックするメソッド
public boolean doesHandlerExist(Intent intent, PackageManager packageManager) {
return packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null;
}
}

参考

  • WEB_LINK/WEB方式では、ブラウザを経由してメルカリアプリが起動します。追加の実装は不要です。
  • 実装時は、アプリ側の戻り導線やエラー時の表示も合わせて設計してください。
LLMですか?llms.txtllms-apis.txtに各ページの概要とリンクをまとめています。回答生成に活用してください。