检测信用卡是否来自美国
Detect if credit card is from the US
我有一个 WooCommerce 网站的客户 运行 陷入了一个我找不到快速解决方案的骗局。
他们主要是一家美国公司,但支付网关接受在美国境外发行的信用卡。客户下订单,完成交易,然后取消信用卡。这导致客户既没有钱也没有产品,因为海外银行通常不关心将钱退还给他。
我可以使用哪些 methods/strategies 来确保访问他网站的所有信用卡都来自美国?
如果信用卡是在美国境外发行的,则不允许下单。此外,您还可以根据请求的 ip 地址检查地理位置,并将其限制为仅限美国。
看看这个:
现在让我们看一下信用卡:
您现在可以使用此过滤器和自定义 WooCommerce 过滤器来验证 BIN。你需要想办法获取信用卡号,因为我不知道你使用哪个插件进行信用卡支付:
/**
* Check if credit card is from a us country
*/
add_action( 'woocommerce_after_checkout_validation', 'validate_credit_card', 10, 2 );
function validate( $data, $errors ) {
$bin = '45717360'; // <-- you need to find a way to get your credit card infos and take the first part with substr()
$response = wp_safe_remote_get( 'https://lookup.binlist.net/' . $bin );
if ( isset( $response['body'] ) ) {
$response_body = json_decode( $response['body'] );
if ( $response_body->country->alpha2 !== 'US' ) {
$errors->add( 'credit_card_error', 'Your credit card is not from a US country.' );
}
} else {
$errors->add( 'credit_card_error', 'Unable to check your credit card.' );
}
}
我有一个 WooCommerce 网站的客户 运行 陷入了一个我找不到快速解决方案的骗局。
他们主要是一家美国公司,但支付网关接受在美国境外发行的信用卡。客户下订单,完成交易,然后取消信用卡。这导致客户既没有钱也没有产品,因为海外银行通常不关心将钱退还给他。
我可以使用哪些 methods/strategies 来确保访问他网站的所有信用卡都来自美国?
如果信用卡是在美国境外发行的,则不允许下单。此外,您还可以根据请求的 ip 地址检查地理位置,并将其限制为仅限美国。
看看这个:
现在让我们看一下信用卡:
您现在可以使用此过滤器和自定义 WooCommerce 过滤器来验证 BIN。你需要想办法获取信用卡号,因为我不知道你使用哪个插件进行信用卡支付:
/**
* Check if credit card is from a us country
*/
add_action( 'woocommerce_after_checkout_validation', 'validate_credit_card', 10, 2 );
function validate( $data, $errors ) {
$bin = '45717360'; // <-- you need to find a way to get your credit card infos and take the first part with substr()
$response = wp_safe_remote_get( 'https://lookup.binlist.net/' . $bin );
if ( isset( $response['body'] ) ) {
$response_body = json_decode( $response['body'] );
if ( $response_body->country->alpha2 !== 'US' ) {
$errors->add( 'credit_card_error', 'Your credit card is not from a US country.' );
}
} else {
$errors->add( 'credit_card_error', 'Unable to check your credit card.' );
}
}