问题
In testing mode when I create a new customer and tries for payment, i got this error.
Customer cus_7Zz2BCnybIZLGw does not have a linked card with ID tok_17Kp8GAwLkQPB7OqrrM73VVI
Im using card number : 4242424242424242 exp_month :12 exp_year 2016
The return response is,
Array
(
[charge_status] =>
[error_info] => Array
(
[type] => invalid_request_error
[message] => Customer cus_7Zz2BCnybIZLGw does not have a linked card with ID tok_17Kp8GAwLkQPB7OqrrM73VVI.
[param] => card
[code] => missing
)
[message] => Customer cus_7Zz2BCnybIZLGw does not have a linked card with ID tok_17Kp8GAwLkQPB7OqrrM73VVI.
)
Input Charge Data is,
$customer = Stripe_Customer::create(array(
'account_balance' => 100,
'source' => $token,
'email' => strip_tags(trim($email))
)
);
$customer_id = $customer->id;
$charge = array(
'card' => 4242424242424242,
'amount' => 100,
'currency' => 'cad',
'receipt_email' => test@test.com,
'description' => 'my payment',
'customer' => $customer_id
);
回答1:
There are three different ways to create a charge:
with the
sourceparameter only. In this case,sourceneeds to be a token or source ID (created by Checkout or Stripe.js), i.e. a string that starts withtok_orsrc_.with the
customerparameter only. In this case,customerneeds to be a customer ID, i.e. a string that starts withcus_. The customer's default payment source will be charged.with both the
customerandsourceparameters. In this case,customerneeds to be a customer ID as in the previous case, butsourceshould be the ID of a payment source that is already attached to the customer. Payment sources can be cards (ID starts withcard_), bank accounts (ID starts withba_) or sources (ID starts withsrc_).
In your case, you're passing a token ID in the source parameter along with a customer ID in the customer parameter.
If this is a new card, you should first use the token to create a card on the customer, then create the charge with the card ID. If the card was already saved for this customer, then you don't need to collect the card information again (and thus don't need to create a token at all).
来源:https://stackoverflow.com/questions/34415987/stripe-payment-getting-error-as-customer-cus-does-not-have-a-linked-card