Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php授权.net SIM卡_Php_Authorize.net - Fatal编程技术网

使用php授权.net SIM卡

使用php授权.net SIM卡,php,authorize.net,Php,Authorize.net,这是我第一次尝试使用Authorize.net。我原以为这会很简单,但在示例代码方面没有太多内容。 我想使用authorize.net服务器上承载的表单 首先,我对指纹感到困惑。我使用交易密钥还是签名密钥 无论使用事务密钥还是签名密钥,我都会收到相同的错误。我得到这个错误代码:(99)这个交易不能被接受 date_default_timezone_set("UTC"); $xyz_x_fp_timestamp = time() ;

这是我第一次尝试使用Authorize.net。我原以为这会很简单,但在示例代码方面没有太多内容。 我想使用authorize.net服务器上承载的表单

首先,我对指纹感到困惑。我使用交易密钥还是签名密钥

无论使用事务密钥还是签名密钥,我都会收到相同的错误。我得到这个错误代码:(99)这个交易不能被接受

            date_default_timezone_set("UTC");
            $xyz_x_fp_timestamp = time() ;
            $xyz_x_fp_sequence = $xyz_x_fp_timestamp - 1489881251 ;//this will generate a unique number every second

            $xyz_x_login = '123123123123';
            $xyz_x_amount = 25.00;
            $my_key = '222222222222222222222222';

            $hash_input = $xyz_x_login.'^'.$xyz_x_fp_timestamp.'^'.$xyz_x_fp_sequence.'^'.$xyz_x_amount.'^';
            $xyz_x_fp_hash = hash_hmac('sha512', $hash_input ,$my_key);
            ?>
    <div class="entry-content">
    <form method="post" action="https://secure.authorize.net/gateway/transact.dll">

    <input type="hidden" name="x_login" value="<?php echo $xyz_x_login; ?>" >
    <input type="hidden" name="x_show_form" value="PAYMENT_FORM" >
    <input type="hidden" name="x_type" value="AUTH_CAPTURE" >
    <input type="hidden" name="x_fp_hash" value="<?php echo $xyz_x_fp_hash; ?>" >
    <input type="hidden" name="x_fp_sequence" value="<?php echo $xyz_x_fp_sequence; ?>" >
    <input type="hidden" name="x_fp_timestamp" value="<?php echo $xyz_x_fp_timestamp; ?>" >
    <input type="hidden" name="x_amount" value="<?php echo $xyz_x_amount; ?>" >
    <p><br/><br/><input class="button" type="submit" name="submit" value="Pay $<?php echo $xyz_x_amount; ?> Now" ><br/></p>
    </form>
date\u default\u timezone\u set(“UTC”);
$xyz_x_fp_timestamp=time();
$xyz_x_fp_序列=$xyz_x_fp_时间戳-1489881251//这将每秒生成一个唯一的数字
$xyz_x_login='123123';
$xyz_x_金额=25.00;
$my_key='2222222';
$hash_input=$xyz_x_login.'^.$xyz_x_fp_时间戳.'^.$xyz_x_fp_序列.'^.$xyz_x_金额.'^';
$xyz_x_fp_hash=hash_hmac('sha512',$hash_input,$my_key);
?>

指纹必须是MD5,而不是SHA512。它使用您的事务密钥

$xyz_x_fp_hash = hash_hmac('md5', sprintf('%s^%s^%s^%s^',
    $xyz_x_login,
    $xyz_x_fp_sequence,
    $xyz_x_fp_timestamp,
    $xyz_x_amount
),  $my_key);

几点注意:

  • 您不需要将时区设置为使用
    time()
    。它始终返回当前Unix时间戳,该时间戳始终以UTC为单位(即时区独立)

  • 你的随机数实际上不是随机的。生成随机序列的更好方法是使用。对于非常敏感的应用程序,它有其自身的局限性,但在该应用程序中效果良好。(
    $xyz_x_fp_sequence=rand(0,10000);

  • 
    
    如果这对你有帮助的话,一定要这样做。
    <?php
        $xyz_x_fp_timestamp = time() ;
        $xyz_x_fp_sequence  = rand(1, 10000);
        $xyz_x_login        = '123123123123';
        $xyz_x_amount       = 25.00;
        $my_key             = '222222222222222222222222';
        $xyz_x_fp_hash = hash_hmac('md5', sprintf('%s^%s^%s^%s^',
            $xyz_x_login,
            $xyz_x_fp_sequence,
            $xyz_x_fp_timestamp,
            $xyz_x_amount
        ),  $my_key);
    ?>
        <div class="entry-content">
        <form method="post" action="https://secure.authorize.net/gateway/transact.dll">
    
        <input type="hidden" name="x_login" value="<?php echo $xyz_x_login; ?>" >
        <input type="hidden" name="x_show_form" value="PAYMENT_FORM" >
        <input type="hidden" name="x_type" value="AUTH_CAPTURE" >
        <input type="hidden" name="x_fp_hash" value="<?php echo $xyz_x_fp_hash; ?>" >
        <input type="hidden" name="x_fp_sequence" value="<?php echo $xyz_x_fp_sequence; ?>" >
        <input type="hidden" name="x_fp_timestamp" value="<?php echo $xyz_x_fp_timestamp; ?>" >
        <input type="hidden" name="x_amount" value="<?php echo $xyz_x_amount; ?>" >
        <p><br/><br/><input class="button" type="submit" name="submit" value="Pay $<?php echo $xyz_x_amount; ?> Now" ><br/></p>
        </form>