将姓名、地址、城市等添加到 PHP 中的 Stripe Customer 对象
Add name, address, city, etc to Stripe Customer object in PHP
我正在使用 Stripe
进行付款,并想向用户对象添加一些附加信息(名字和姓氏、地址和 phone)。
$token = $_POST['stripeToken'];
$email = strip_tags(trim($_POST['email']));
$donation_type = $_POST['type'];
$donation_type_other = $_POST['other'];
// User Info
$name_first = $_POST['name_first'];
$name_last = $_POST['name_last'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$user_info = array("First Name" => $name_first, "Last Name" => $name_last, "Address" => $address, "State" => $state, "Zip Code" => $zip);
// Metadata for the charge
$metadata_charge = array();
if (!empty($donation_type_other) && $donation_type == 'Other') {
$metadata_charge = array("Donation Type" => $donation_type, "Other" => $donation_type_other);
} else {
$metadata_charge = array("Donation Type" => $donation_type);
}
$customer = \Stripe\Customer::create(array(
'email' => $email,
'card' => $token,
'metadata' => $user_info
));
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'receipt_email' => $email,
'amount' => $_POST['amount']*100,
'currency' => 'usd',
"metadata" => $metadata_charge
));
最好的方法是什么?要在 Customer
对象上使用 metadata
?或者我将其设置为运费 address/info?
由于您正在创建一个客户对象,根据您对要存储的内容的描述,这似乎并不重要。 Stripe 不会履行任何实物商品,因此他们在客户对象上提供的存储主要是为了您的利益。因此,当您访问客户对象时(通过像 cus_8Dmu7vi6wah58z
这样的 ID),它应该 return 所有的运输信息和元数据。
运输哈希中有一个 dedicated name field,但它不会从姓氏中抽象出名字。如果这是您真正想要的东西,将其存储在元数据字段中可能会更容易。
您还可以注意到,将 "shipping" 信息存储在运输哈希中,并将 "billing" 信息存储在元数据哈希中可能会有所帮助。
我正在使用 Stripe
进行付款,并想向用户对象添加一些附加信息(名字和姓氏、地址和 phone)。
$token = $_POST['stripeToken'];
$email = strip_tags(trim($_POST['email']));
$donation_type = $_POST['type'];
$donation_type_other = $_POST['other'];
// User Info
$name_first = $_POST['name_first'];
$name_last = $_POST['name_last'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$user_info = array("First Name" => $name_first, "Last Name" => $name_last, "Address" => $address, "State" => $state, "Zip Code" => $zip);
// Metadata for the charge
$metadata_charge = array();
if (!empty($donation_type_other) && $donation_type == 'Other') {
$metadata_charge = array("Donation Type" => $donation_type, "Other" => $donation_type_other);
} else {
$metadata_charge = array("Donation Type" => $donation_type);
}
$customer = \Stripe\Customer::create(array(
'email' => $email,
'card' => $token,
'metadata' => $user_info
));
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'receipt_email' => $email,
'amount' => $_POST['amount']*100,
'currency' => 'usd',
"metadata" => $metadata_charge
));
最好的方法是什么?要在 Customer
对象上使用 metadata
?或者我将其设置为运费 address/info?
由于您正在创建一个客户对象,根据您对要存储的内容的描述,这似乎并不重要。 Stripe 不会履行任何实物商品,因此他们在客户对象上提供的存储主要是为了您的利益。因此,当您访问客户对象时(通过像 cus_8Dmu7vi6wah58z
这样的 ID),它应该 return 所有的运输信息和元数据。
运输哈希中有一个 dedicated name field,但它不会从姓氏中抽象出名字。如果这是您真正想要的东西,将其存储在元数据字段中可能会更容易。
您还可以注意到,将 "shipping" 信息存储在运输哈希中,并将 "billing" 信息存储在元数据哈希中可能会有所帮助。