动态更改authorize.net事务密钥?

时间:2015-01-05 22:26:12

标签: php wordpress woocommerce authorize.net

我目前正在建立一个电子商务网站,该网站用于5家使用woocommerce和authorize.net付款的独立公司。

到目前为止授权对单个供应商来说非常有用,问题在于,一旦我按位置选择了供应商,我需要先将api_transaction_keyapi_login_id更改为正确的供应商付款处理完毕。

我一直在搜索文件几个小时,找不到密钥和ID的设置位置。

有人可以帮我找到我可以将密钥和id值覆盖到我需要的位置吗? 或者为每个供应商创建一个新的支付网关并复制除密钥和ID之外的所有authorize.net网关信息会更好吗?

1 个答案:

答案 0 :(得分:0)

如果有人对我的工作方式感到好奇,那么这个答案就在这里。
在Authorize.net的woocommerce支付网关中,你会找到一个名为

的文件。
  

类-WC检查净CIM-api.php

并且在此文件的contruct函数中需要放置钩子。

public function __construct( $api_user_id, $api_transaction_key, $environment ) {
    // File default code
    }

这需要在默认文件代码

之前放置以下三行代码
$custom_auth_info = apply_filters('get_custom_auth', $custom_auth_info );   
$api_user_id = $custom_auth_info['api_user_id'];
$api_transaction_key = $custom_auth_info['api_transaction_key'];    

apply_filters引用放在我的插件中的以下函数

add_filter('get_custom_auth', 'select_distributor_by_state');

function select_distributor_by_state($custom_auth_info = []) {
    global $wpdb;

   //Your Query is here to select the proper distributor from the DB
   //and retrieve their custom Authorize.net ID and Transaction Key

    $custom_auth_info['api_user_id'] = $your_query[0]['api_loginid'];
    $custom_auth_info['api_transaction_key'] = $your_query[0]['api_transactionkey'];
    $_SESSION['dealer'] = $vendor[0]['id'];
    return $custom_auth_info;
}

此过滤器允许您挂钩,获取所需数据,然后将其返回并在处理付款之前将其直接应用到代码中。