当前位置: 首页 > 知识库问答 >
问题:

使用::条的“无效字符串”

於意蕴
2023-03-14

我正在尝试设置一个Perl脚本,该脚本将使用Net::Stripe通过Stripe处理信用卡费用。

我能够成功请求令牌,但当我使用该令牌过帐费用时,出现以下错误:

错误:无效的\u请求\u错误-无效字符串:{“exp\u month”=

这是我的密码

$API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

my $stripe = Net::Stripe->new(
    api_key       => $API_KEY,
    debug         => '1',
    debug_network => '1'
);

my $card_token = $stripe->post_token(
    card => {
        number    => $FORM{'Credit Card #'},
        exp_month => $FORM{'Expiration Month'},
        exp_year  => $FORM{'Expiration Year'},
        cvc       => $FORM{'Credit Card Security Code'}
    }
);

print Dumper( $card_token );

try {
    my $charge = $stripe->post_charge(
        amount      => $amount_of_charge_in_cents,
        currency    => 'usd',
        card        => $card_token,
        description => 'ABC Charge',
        customer    => $FORM{'Name'}
    );
}
catch {
    warn "caught error: $_";    # not $@
}

我应该使用$card_token以外的东西作为卡片值吗?

共有2个答案

俞衡虑
2023-03-14

多亏了korben,我成功地修改了我的代码,只使用返回的令牌id:

    $API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

my $stripe = Net::Stripe->new(
    api_key       => $API_KEY,
    debug         => '1',
    debug_network => '1'
);

my $card_token = $stripe->post_token(
    card => {
        number    => $FORM{'Credit Card #'},
        exp_month => $FORM{'Expiration Month'},
        exp_year  => $FORM{'Expiration Year'},
        cvc       => $FORM{'Credit Card Security Code'},
        name      => $FORM{'Name on Card'},
    }
);
print Dumper($card_token);

$token_id =  $card_token->{id};

try {
    my $charge = $stripe->post_charge(
         amount      => $amount_of_charge_in_cents,
         currency    => 'usd',
         card    => $token_id,
         description => 'ABC Charge'
    );
} catch {
    warn "caught error: $_"; # not $@
}

我还删除了“客户”值,因为这是现有客户的ID,并将“名称”添加到卡令牌代码中。

华森
2023-03-14

Stripe API调用Create a card token(由post_token包装)的文档说明需要以下字段

exp_month
exp_year
number
currency
cvc

但你们只提供了其中的四个

 类似资料:
  • 我想这可能是由于虚拟卡的详细信息,但我注入了我的真实卡的详细信息,但仍然相同的错误。 谁能帮我查一下,让我知道我在这里遗漏了什么吗?

  • 我试图解决这项任务,但我失败了,因为返回不起作用。我是java新手,希望你能帮助我。 任务是删除字符串中的每个x,但不是第一个和最后一个。

  • 在Jenkins中解析json文件时面临以下错误 Json文件 错误 hudson.remoting.代理异常:net.sf.json.JSONExcture:无效的JSON字符串在net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:143)在net.sf.json.JSONSerializer.toJSON(JSONSerializer.j

  • 总之,我正在尝试解析中的xml。但是XMLSpy告诉我xml的格式不好。 我相信这xml中包含了一些无效字符()。因为如果我把它拿走。XMLSpy的验证已通过。我认为UTF-8编码不允许这种字符。但是如果我真的想加入这种角色呢。我应该应用哪种编码?谢谢

  • 我无法使用MySQL和phpMyAdmin进行基本的编码工作。我想在我的数据中使用简单的法语字符(如é和è)。如果运行UPDATE,则字符插入正确。但不是在我导入剧本的时候... 下面是我在phpMyAdmin上导入的脚本: 导入时出现的两个错误: 在phpMyAdmin上导入脚本时,唯一接近utf8mb4的选项是utf8 表和数据库也采用类似的编码 但是数据被剥离了... 我想做什么 将COLL

  • Spring Boot Starter父版本:2.1.5.发布 当以下URL通过Spring Cloud Gateway路由时,为Query_Param抛出无效字符'=' 有什么变通办法可以克服它吗? 下面的scheduler.cron.expression导致了这个问题。properties=scheduler.cron.expression=0%200/1%201/1%20*%20*