メルカリアプリ起動 開発ガイド
概要
メルペイでは、お客様をメルカリアプリへリダイレクトする際に、以下の2つの方式から選択できます。
- WEB_LINK / WEB方式:ブラウザ経由でメルカリアプリを起動
- APP_LINK / APP方式:加盟店様がご提供のアプリからメルカリアプリを直接起動
本ガイドでは、各接続方式での設定方法と実装例を説明します。
接続方式別の設定
OpenAPIタイプ
OpenAPIタイプでは、Pay払いの決済事業者へのリダイレクト方式を指定します。
都度支払いの場合
都度支払い(/wallet/charge)API の Pay払いの決済事業者へのリダイレクト方式(walletInformation.walletChargeOptions.transitionType) で指定します。
利用承諾の場合
利用承諾(/wallet/authorizeAccount)API の Pay払いの決済事業者へのリダイレクト方式(walletAuthorizationInformation.walletAuthorizationOptions.transitionType) で指定します。
transitionType の値
| 値 | 説明 |
|---|---|
WEB_LINK | Pay払いの決済事業者にリダイレクトする外部ブラウザのリンク。省略時のデフォルト値です。 |
APP_LINK | Pay払いの決済事業者のモバイルアプリリンク。ご提供のアプリからメルカリアプリを直接起動します。 実装方法はAPP_LINK方式を参照してください。 |
プロトコルタイプ
決済実行(ExecTranMerpay)API の UserInfo(ユーザー端末情報)で、お客様端末の情報を指定します。
都度決済、利用承諾のいずれの場合でも、同じAPIとパラメータを使用します。
| 値 | 方式 | 説明 |
|---|---|---|
1 | WEB | レスポンスの支払手続き開始IFのURL(StartURL)に設定される当サービスのURLを実行すると、ブラウザを経由してメルカリアプリが起動します。 ※環境によってはメルカリアプリを起動できない可能性があります。 省略時のデフォルト値です。 |
2 | APP | レスポンスの支払手続き開始IFのURL(StartURL)にメルカリアプリを指定します。ご提供のアプリから起動処理を記述してください。 実装方法はAPP_LINK方式を参照してください。 |
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を開く Intent を Context#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方式では、ブラウザを経由してメルカリアプリが起動します。追加の実装は不要です。
- 実装時は、アプリ側の戻り導線やエラー時の表示も合わせて設計してください。