For the complete documentation index, see llms.txt. This page is also available as Markdown.

展示支付页面

获取订单ID后,通过该ID拉起支付页面展示给您的用户。

可选必填生产沙盒有几种方法可以显示支付页面:

  • 在现有页面内重定向

  • 在新标签页中打开

  • 嵌入 iFrame 内

  • 在 Webview中显示

前置条件

详情

接口 URL

参数

参数
必要
描述

txn_id

必填

您在发起支付后收集到的Coda订单ID

browser_type

可选

如果您的用户使用移动设备,则需要传递browser_type=mobile-web,以确保支付页面针对该设备进行了优化。

如果传递了其他值或未传递任何值,则默认会优化为桌面端

utm_souce

可选

例:utm_source=google,utm_source=coda

utm_medium

可选

例:utm_medium=banner,utm_medium=email

utm_campaign

可选

例:utm_campaign=spring_sale,utm_campaign=new_season_launch

utm_content

可选

例:utm_content=banner,utm_content=email

示例

在支付页面解锁营销分析

我们的支付页面支持营销分析。您可以将 UTM 参数 从您的商店页面传递到 Codapay 页面。这些 UTM 参数将用于 支付漏斗数据分析 以及 营销渠道归因分析

我们建议您直接传递 UTM 参数,无需修改,以确保托管支付页面收集的分析数据可以与您的网页上收集的其他分析数据(例如 Google Analytics)一致,避免数据偏差。

例如:

用户通过以下带有UTM追踪的URL访问您的页面:

当用户进行购买时,您可以将这些UTM参数与其他必填的URL参数一起传递到Codapay页面的URL:

Webview 注意事项

某些支付渠道可能会将用户重定向到其钱包应用。为了在使用 WebView 时正确处理重定向,您需要使用 WebViewClient.shouldOverrideUrlLoading 并配合以下 Intent 进行处理:

地区
渠道
覆盖URL
仅支持外部浏览器

Brazil

PicPay

picpay://

Brazil

AmeDigital

amedigital://

Indonesia

GO-PAY

gojek://

Indonesia

Shopee Pay

shopeeid:// & shopeepayid://

Indonesia

Dana

danaid:// & market://details?id=id.dana

Malaysia

GrabPay

grab://

Malaysia

Shopee Pay

shopeepaymy://

Malaysia

Maxis

sms:32083

Malaysia

-

-

U Mobile

Singapore

GrabPay

grab://

Philippines

GrabPay

grab://

Philippines

GCash

gcash://

Thailand

Shopee Pay

intent://

Taiwan

Line Pay

intent://

Myanmar

KBZPay

intent://

United States

Cash App

cashme://

Vietnam

MoMo

momo://

All countries

-

-

Google Pay/Apple Pay

常见Webview问题和建议

Android WebView 配置

在使用 Android 的 WebView 时,请按如下方式配置 WebViewClient:

重写 onCreateWindow 方法:

建立 WebView 设置:

ERR_UNKNOWN_URL_SCHEME

原因分析

WebView 只识别标准的 URL 协议,如 http 和 https。对于自定义协议(如 weixin:// 和 qunaraphone://),WebView 无法识别,导致出现错误 ERR_UNKNOWN_URL_SCHEME。该错误表明 WebView 无法处理支付渠道提供的自定义协议。

解决方案

为处理自定义 URL 协议,您需要重写 WebViewClient 中的 shouldOverrideUrlLoading 方法。该方法允许您拦截并管理 WebView 中的 URL 加载行为,确保自定义协议得到正确处理。

实现步骤

  • 在您的 WebViewClient 类中实现 shouldOverrideUrlLoading(WebView view, String url) 方法。

  • 配置该方法以拦截 URL 并处理自定义协议:

    • 返回 true:当 URL 使用自定义协议时,表明 WebView 不应处理该 URL,并允许您根据需要处理它。

    • 返回 false:对于标准协议(http, https),允许 WebView 按常规加载 URL。

示例实现:

通过实现此方法,您可以确保自定义 URL 协议根据应用需求正确重定向或处理,从而避免 ERR_UNKNOWN_URL_SCHEME 错误。

Webview导致的屏幕旋转问题

屏幕旋转可能导致WebView页面刷新并出现错误,影响应用的稳定性。

解决方案

为了防止在屏幕旋转时活动重启,您可以在AndroidManifest.xml中添加以下配置:

这将确保在屏幕旋转过程中,活动(Event)保持稳定,避免不必要的重启和页面刷新问题。

iOS WebView (about:blank) 问题

在 iOS WebView 中处理 about:blank 页面时,您可以通过实现 WKUIDelegate 委托,并将其设置为 _webview.uiDelegate 来解决此问题。然后,您需要实现以下方法:

解决方案说明

  • 实现 WKUIDelegate: WKUIDelegate 协议用于处理与 WebView UI 相关的任务。

  • 处理新的窗口请求: 如果请求的目标框架不是主框架(即 navigationAction.targetFrame.isMainFrameNO),则通过 loadRequest 方法将该请求加载到 WebView 中。这可以防止新窗口打开,解决 about:blank 的问题。

iOS WebView (捕获重定向 URL)

由于 WKWebView 位于 iOS 系统级别,并且无法通过 API 直接进入或修改。因受 iOS 的严格限制,为了捕获重定向 URL,我们建议使用以下方法:

解决方案说明

  1. navigationAction.targetFrame == nil:此条件判断确保了当目标框架不存在时(通常发生在页面重定向时),WebView 会加载新的请求,而不是默认的行为。

  2. 避免窗口打开:当 targetFramenil 时,WebView 会加载请求,避免弹出新窗口,确保重定向 URL 的正确捕获。

此方法有助于捕获并处理所有来自 WebView 的重定向请求。

最后更新于

这有帮助吗?