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

带卡id的条纹创建令牌

宗政深
2023-03-14

我目前正在尝试用服务器端stripe api创建收费。

但是我遇到了一个问题;我用两种方法来进行付款:

>

  • 用户可以使用条带元素付款 =

    或者,如果用户已经在其帐户上添加了一些卡,他可以在列表中选择其中的一张

    我想知道是否有办法生成一个带有卡id和客户id的令牌,以便使用这个令牌来创建收费,而不是使用卡id和客户id来对用户收费。

    我已经试过了https://stripe.com/docs/api/node#create_card_token但它似乎不起作用。

    stripe.tokens.create({
      card: cardId,
      customer: customerId
    }, function(err, token) {
      // do smthg here with the token
    });
    

  • 共有3个答案

    李锦
    2023-03-14

    只需传递正文中的值,

    [{"key":"amount","value":"1000","description":""},{"key":"currency","value":"usd","description":""},{"key":"customer","value":"cus_ID","description":""},{"key":"description","value":"\"Charge for jenny.rosen@example.com\"","description":""},{"key":"card","value":"card_ID","description":""}]
    

    这为我工作

    方长卿
    2023-03-14

    您无法为现有卡创建新令牌,因为这没有意义。该卡已保存在客户身上,您可以将其收费。

    这里最简单的解决方案可能是反过来做,并在您获得令牌tok_XXXX时将卡保存在客户身上。这样,您总是通过传递客户参数作为客户idcus_XXXXsource参数作为卡idcard_XXXX来向卡收费。

    否则,您需要动态处理这个问题,以便知道您是在获取令牌(tok_XXXX)还是卡id(card_XXXX),并根据该决定传递不同的参数。你的前端代码应该知道你最终会遇到哪种情况。

    凌长恨
    2023-03-14

    如果您使用存储卡付款,则无需获得令牌,

    1-在条带上创建客户

    $customer = \Stripe\Customer::create([
        'email' => $customer_email,
    ]);
    
    $response = ['status' => 'success', 'response' => $customer];
    

    当你创造了客户,你就有了customer_id

    if(isset($response ['response']['id']))
        $response ['customer_id']  = $response ['response']['id'];
    

    2 - 您可以通过客户ID和卡令牌在条带上添加卡

    $customer = \Stripe\Customer::retrieve($customer_id);
    $creditCard = $customer->sources->create(array("source" => $cardToken));
    
    $response = ['status' => 'success', 'response' => $creditCard];
    

    现在你有这样的卡ID

    "id": "card_1D4plsDExLRkbD8k1UWdqwIr"
    

    3-您可以在客户身上存储多张卡片,也可以进行撤退

    $cards = \Stripe\Customer::retrieve($customer_id)->sources->all(array(
        "object" => "card"
    ));
    

    4-您可以通过存储在客户账户上的卡支付

    $params = [
        'currency' => 'USD',
        'amount' => $total_amount * 100,  
    // converting dollars to cents
        'description' => $description, //it may be blank
        'customer' => $customer_id,
        "card" => $card_id'
    ];
    
    $transaction = \Stripe\Charge::create($params); 
    
    $response = ['status' => 'success', 'response' => $transaction['id']];
    

    这里我们不使用“source”参数,因为它是在通过卡令牌付款时使用的。

     类似资料:
    • 当客户提交信用卡时,我希望执行以下序列(使用Stripe API): 检查用户的元数据中是否有条带客户id 如果没有,则创建一个新客户,将输入的卡保存给该用户 如果用户已经有客户id,请检查输入的卡是否已经是其保存的卡之一 如果是,则对该卡收费 如果不是,请将新卡添加到客户对象,然后对该卡收费 在我当前的代码中,Stripe在尝试创建费用时返回invalid_request错误。以下是相关代码部分

    • 我正在使用Laravel出纳实现一个定期付款系统。我需要一个订阅计划。Stripe doc说:“您可以使用API或Stripe仪表板创建计划。”但当我点击仪表板上的链接进入仪表板时,我看不到任何创建任何计划的方法。 问:那么,我如何在那里创建一个计划,以便能够以以下方式在服务器端Laravel实现中使用它? 我需要将该计划用作变量的值。

    • 我想从stripe上的应用程序创建一个计划。这种情况是,用户以不同的价格作为经常性付款。所以,这就是为什么我要为每个用户创建计划。 我正在使用laravel 5和

    • 问题内容: 使用Bootstrap类时,表中的其他每一行的背景色均等于。如何改变这种颜色? 问题答案: 在bootstrap.css中更改此行,或者可以使用(奇数)或(偶数)代替(2n + 1)

    • 我正在用stripe设置定期支付。我正在使用react-stripe-elements来收集卡信息,看起来有两种方法可以保存卡供以后使用:

    • 通过纹理贴图加载器TextureLoader的load()方法加载一张图片可以返回一个纹理对象Texture,纹理对象Texture可以作为模型材质颜色贴图.map属性的值。 材质的颜色贴图属性.map设置后,模型会从纹理贴图上采集像素值,这时候一般来说不需要再设置材质颜色.color。.map贴图之所以称之为颜色贴图就是因为网格模型会获得颜色贴图的颜色值RGB。 // 纹理贴图映射到一个矩形平面