为了处理兼容各种渠道 SDK 的返回逻辑,以及在不同机型的不同 Activity 生命周期表现,和一些“异常”操作流程,引入了“中间页面”。
在渠道客户端 SDK 没有返回支付结果的时候,可以让用户手动点击“取消”、“完成”或者“重新打开”。
如果不启用中间页面,处理逻辑保持原有的不变。
示例代码都以 Kotlin 举例。
Pingpp.enableMiddlePage(true, 1.0)
- 参数 1: Boolean, 是否启用中间页面;
- 参数 2: Double, 中间页面的显示延迟时间,单位秒。传入 0 表示直接展示。延迟显示可以使中间页面在大多数正操操作流程下都不需要显示出来。
该方法等价于:
Pingpp.enableMiddlePage(true)
Pingpp.delayMiddlePage(1.0)
SDK 自带的页面布局很简陋,请添加自定义页面布局文件。
pingpp_payment_activity_main.xml
参考 example/.../pingpp_payment_activity_main.xml
- Button,
android:id="@+id/pingpp_button_reopen"
- 用户点击该按钮,会再次尝试打开渠道支付页面
- Button,
android:id="@+id/pingpp_button_cancel"
- 用户点击该按钮,会返回 pay_result=user_cancel
- Button,
android:id="@+id/pingpp_button_success"
- 用户点击该按钮,会返回 pay_result=user_success
前端的结果均不能作为最终结果,实际支付结果需要通过服务器查询。
在 app 的 manifest 中添加
<activity
android:name="com.pingplusplus.android.PaymentActivity"
android:theme="@style/AppTheme"
tools:replace="theme">
</activity>