我正在使用Stripe
进行付款,并希望向用户对象添加一些其他信息(名字和姓氏,地址和电话)。
$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
));
这样做的最佳方式是什么?在metadata
对象上使用Customer
?或者我会将其设置为送货地址/信息?
答案 0 :(得分:7)
由于您正在创建客户对象,因此根据您要存储的内容的描述,它似乎并不重要。 Stripe不会对物理商品进行任何实现,因此他们在客户对象上提供的存储主要是为了您的利益。因此,当您访问客户对象(通过cus_8Dmu7vi6wah58z
之类的ID)时,它应返回所有发货信息和元数据。
发货哈希中有dedicated name field,但它不会从姓氏中抽出名字。如果这是您真正想要的东西,那么将其存储在元数据字段中可能会更容易。
您还可以注意,将“送货”信息存储在送货哈希中,并将“开票”信息存储在元数据哈希中可能会有所帮助。