CVC 验证
在处理客户的 CVC 之前对其进行验证。
开始
若要集成验证功能,您必须创建一个 AccessCheckoutCardValidationListener
的实施。在 CvcValidationConfig
中传入安卓 UI 元素,以便使用 AccessCheckoutValidationInitialiser
来初始化验证。
完整示例集成:您可以在
实施 AccessCheckoutCvcValidationListener
若要接收您客户的 CVC 验证结果,您必须创建您自己的 AccessCheckoutCvcValidationListener
实施。
Copied!
package com.worldpay.access.checkout.sample.code
import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener
class CvcValidationListener : AccessCheckoutCvcValidationListener {
override fun onCvcValidated(isValid: Boolean) {
//TODO: handle the cvc validation result
}
override fun onValidationSuccess() {
//TODO: handle the form when the validation is complete i.e. all fields are valid
}
}
package com.worldpay.access.checkout.sample.code import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener class CvcValidationListener : AccessCheckoutCvcValidationListener { override fun onCvcValidated(isValid: Boolean) { //TODO: handle the cvc validation result } override fun onValidationSuccess() { //TODO: handle the form when the validation is complete i.e. all fields are valid } }
package com.worldpay.access.checkout.sample.code
import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener;
public class CvcValidationListener implements AccessCheckoutCvcValidationListener {
@Override
public void onCvcValidated(Boolean isValid) {
//TODO: handle the cvc validation result
}
@Override
public void onValidationSuccess() {
//TODO: handle the form when the validation is complete i.e. all fields are valid
}
}
package com.worldpay.access.checkout.sample.code import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener; public class CvcValidationListener implements AccessCheckoutCvcValidationListener { @Override public void onCvcValidated(Boolean isValid) { //TODO: handle the cvc validation result } @Override public void onValidationSuccess() { //TODO: handle the form when the validation is complete i.e. all fields are valid } }
功能和参数描述
方法 | 描述 |
---|---|
onCvcValidated | 该方法与 CVC 字段的有效性一起调用。 isValid 表示该字段是处于有效还是无效状态。 |
onValidationSuccess | 该方法在所有字段都处于有效状态时才调用。通常,您可以用它来启用提交按钮。 |
初始化 CVC 验证
在实施 AccessCheckoutCvcValidationListener
之后,您必须为视图初始化验证。为此,使用构造器来创建一个 CvcValidationConfig
,如下所示。然后用它来初始化验证。
Copied!
package com.worldpay.access.checkout.sample.code
// android library imports omitted
import com.worldpay.access.checkout.client.validation.AccessCheckoutValidationInitialiser
import com.worldpay.access.checkout.client.validation.config.CvcValidationConfig
class MainActivity : AppCompatActivity() {
// fields omitted
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val cvc = findViewById<EditText>(R.id.cvc)
// other view references omitted
val cvcValidationListener = CvcValidationListener()
val cvcValidationConfig = CvcValidationConfig.Builder()
.cvc(cvc)
.validationListener(cvcValidationListener)
.lifecycleOwner(this)
.build()
AccessCheckoutValidationInitialiser.initialise(cvcValidationConfig)
//TODO: generate session here
}
}
package com.worldpay.access.checkout.sample.code // android library imports omitted import com.worldpay.access.checkout.client.validation.AccessCheckoutValidationInitialiser import com.worldpay.access.checkout.client.validation.config.CvcValidationConfig class MainActivity : AppCompatActivity() { // fields omitted override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val cvc = findViewById<EditText>(R.id.cvc) // other view references omitted val cvcValidationListener = CvcValidationListener() val cvcValidationConfig = CvcValidationConfig.Builder() .cvc(cvc) .validationListener(cvcValidationListener) .lifecycleOwner(this) .build() AccessCheckoutValidationInitialiser.initialise(cvcValidationConfig) //TODO: generate session here } }
package com.worldpay.access.checkout.sample.code
// android library imports omitted
import com.worldpay.access.checkout.client.validation.AccessCheckoutValidationInitialiser;
import com.worldpay.access.checkout.client.validation.config.CvcValidationConfig;
import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener;
public class MainActivity extends AppCompatActivity {
// fields omitted
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EditText cvc = findViewById<EditText>(R.id.cvc);
// other view references omitted
AccessCheckoutCvcValidationListener cvcValidationListener = CvcValidationListener();
CvcValidationConfig cvcValidationConfig = CvcValidationConfig.Builder()
.cvc(cvc)
.validationListener(cardValidationListener)
.lifecycleOwner(this)
.build();
AccessCheckoutValidationInitialiser.initialise(cvcValidationConfig);
//TODO: generate session here
}
}
package com.worldpay.access.checkout.sample.code // android library imports omitted import com.worldpay.access.checkout.client.validation.AccessCheckoutValidationInitialiser; import com.worldpay.access.checkout.client.validation.config.CvcValidationConfig; import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener; public class MainActivity extends AppCompatActivity { // fields omitted @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EditText cvc = findViewById<EditText>(R.id.cvc); // other view references omitted AccessCheckoutCvcValidationListener cvcValidationListener = CvcValidationListener(); CvcValidationConfig cvcValidationConfig = CvcValidationConfig.Builder() .cvc(cvc) .validationListener(cardValidationListener) .lifecycleOwner(this) .build(); AccessCheckoutValidationInitialiser.initialise(cvcValidationConfig); //TODO: generate session here } }
后续步骤