创建订单时,我需要在数据库中保存用户在透明结帐时通知卡的Bin和Last4。
我在保存请求时尝试执行此插入,但它无法正常工作,因为它写为:NULL
的Javascript
$('.woocommerce-checkout, #order_review').submit(function (e) {
e.preventDefault();
// console.log($('input[name=pagarme_card_hash]').val());
var cardNumber = $('#pagarme-card-number').val();
var pagarmeCardNumber = cardNumber.replace(/ /g, ''); // remove spaces
var bin = pagarmeCardNumber.slice(0, 6);
var last4 = pagarmeCardNumber.slice(-4);
console.log('pagarmeCardNumber: ' + pagarmeCardNumber);
console.log('bin: ' + bin);
console.log('last4: ' + last4);
$.ajax({
type: 'post',
url: ajaxurl,
data: {
bin: bin,
last4: last4,
action: 'idx_save_bin_last4'
},
success: function (response) {
console.log('success');
},
error: function (error){
console.log('error');
console.log(error);
}
});
return false;
});
的functions.php
add_action( 'wp_ajax_idx_save_bin_last4', 'idx_save_bin_last4' );
add_action( 'wp_ajax_nopriv_idx_save_bin_last4', 'idx_save_bin_last4' );
add_action( 'save_post', 'idx_save_bin_last4', 10, 3 );
function idx_save_bin_last4($post_id)
{
$bin = $_POST['bin'];
$last4 = $_POST['last4'];
$post_type = get_post_type($post_id);
if ("shop_order" != $post_type ) {
return;
}
update_post_meta($post_id, '_order_bin', $bin);
update_post_meta($post_id, '_order_last4', $last4);
}
答案 0 :(得分:1)
没有冒犯,但我永远不会从你的网站上购买任何类似的代码,并使用未经过滤的POST变种。
考虑使用Stripe API处理PAN数据,然后您需要担心的是事务,发票,客户和订阅哈希值。没有CC数据触及您的服务器。