Stripe创建客户支付源时如何正确传递持卡人姓名?
Stripe添加客户卡片时传递持卡人姓名的正确方式
错误原因
你遇到的Received unknown parameter: name错误,是因为将name参数放在了请求的根层级,而Stripe的createSource接口并不接受根层级的name参数。
方案一:前端创建Token时传入持卡人姓名(推荐)
在前端调用stripe.createToken时,可直接附带持卡人姓名信息,生成的Token会包含该字段,后端无需额外传递。
修改前端createToken函数:
function createToken() { // 假设页面有id为cardholder-name的输入框用于收集持卡人姓名 const cardholderName = document.getElementById('cardholder-name').value; stripe.createToken(cardElement, { name: cardholderName }).then(function(result) { if (result.error) { resultContainer.innerHTML = '<p>'+result.error.message+'</p>'; } else { stripeTokenHandler(result.token); } }); }
后端代码无需修改,直接使用Token即可:
$intent = \Stripe\Customer::createSource($customerID, array( 'source' => $token ));
方案二:后端嵌套传递name参数
若需在后端传递持卡人姓名,必须将name嵌套在source数组内部:
$intent = \Stripe\Customer::createSource($customerID, array( 'source' => array( 'token' => $token, 'name' => 'John Doe' ) ));
注意:请确保你的Stripe PHP SDK为最新稳定版本,避免因版本兼容问题导致参数不被识别。
内容的提问来源于stack exchange,提问作者Mark Alan
相关产品推荐
相关产品推荐

