テストモードで新しい顧客を作成して支払いを試みると、このエラーが発生しました。
顧客cus_7Zz2BCnybIZLGwにはID tok_17Kp8GAwLkQPB7OqrrM73VVIのリンクカードがありません
Imを使用してカード番号:4242424242424242 exp_month:12 exp_year 2016
返される応答は、
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.
)
入力料金データは、
$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' => [email protected],
'description' => 'my payment',
'customer' => $customer_id
);
課金を作成する には3つの異なる方法があります:
source
パラメーターのみ。この場合、source
は token または source ID( Checkout または Stripe。 js )、つまりtok_
またはsrc_
で始まる文字列。
customer
パラメーターのみ。この場合、customer
は customer ID、つまりcus_
で始まる文字列である必要があります。顧客のデフォルトの支払い元に請求されます。
customer
パラメーターとsource
パラメーターの両方を使用します。この場合、customer
は前のケースと同様に顧客IDである必要がありますが、source
は既に顧客に関連付けられている支払い元のIDである必要があります。支払い元は cards (IDはcard_
で始まる)、 銀行口座 (IDはba_
で始まる)または sources =(IDはsrc_
で始まります)。
あなたの場合、source
パラメーターにトークンIDを渡し、customer
パラメーターに顧客IDを渡します。
これが新しいカードの場合、最初にトークンを使用して顧客で カードを作成 し、次にカードIDで請求を作成する必要があります。この顧客用にカードが既に保存されている場合、カード情報を再度収集する必要はありません(したがって、トークンをまったく作成する必要はありません)。