我正在建立一个销售可运输商品的在线市场。该网站将类似于 Etsy,将商家与买家联系起来。
我希望仅在商家发货时才能通过客户的卡收费,以避免退款并提供类似亚马逊的支付体验。如果商家发货缓慢或出现缺货,这也将帮助我们避免退款和付款纠纷。在某些情况下,货物需要7天以上才能定制并发货
这是一个时间线示例:
我计划使用 Stripe Connect 进行付款处理,但不确定如何延迟捕获付款超过 7 天。有什么想法吗?我不想将资金汇总到我自己的账户下并使用支出,因为这可能会违反资金转移法。任何帮助将不胜感激!
编辑:Quora 似乎有一个类似的问题,但答案似乎并不涉及商家发货但付款失败的情况。
经过进一步研究,似乎没有办法在 7 天授权窗口之后延迟捕获费用。
但这里有一种延迟收费的方法:
Stripe 常见问题解答的示例:https://support.stripe.com/questions/can-i-save-a-card-and-charge-it-later
请注意,您在对卡进行令牌化和实际收费之间等待的时间越长,您的收费就越有可能因各种原因(卡过期、资金不足、欺诈等)而被拒绝。这也增加了一层复杂性(和销售损失),因为您需要要求买家重新提交付款信息。
我仍然想确认是否可以收取一定金额(例如“预授权”),但这至少可以让我稍后对卡进行收费。
Celery 构建了一项服务来帮助您使用 Stripe 完成此操作。 它们非常易于使用,但请注意,每笔交易收取 2% 的费用。
实际上您可以保存用户令牌并稍后使用跟踪信息付款
# get the credit card details submitted by the form or app
token = params[:stripeToken]
# create a Customer
customer = Stripe::Customer.create(
card: token,
description: 'description for [email protected]',
email: '[email protected]'
)
# charge the Customer instead of the card
Stripe::Charge.create(
amount: 1000, # in cents
currency: 'usd',
customer: customer.id
)
# save the customer ID in your database so you can use it later
save_stripe_customer_id(user, customer.id)
# later
customer_id = get_stripe_customer_id(user)
Stripe::Charge.create(
amount: 1500, # $15.00 this time
currency: 'usd',
customer: customer_id
)
有没有人想出一个解决方案来解决这个问题。我也有类似的目标,Etsy 或 Kickstarter 就是很好的例子。已进行购买/承诺,但在 Etsy 发货/达到 Kickstarter 活动目标之前不会对卡收费。
Stripe 释放延迟方法,无需充电即可保持。 https://stripe.com/docs/ payments/capture-later
<?php
require_once('stripe-php/init.php');
\Stripe\Stripe::setApiKey('your stripe key');
$token = $_POST['stripeToken'];
$stripeinfo = \Stripe\Token::retrieve($token);
$email = $stripeinfo->email;
$customer = \Stripe\Customer::create(array(
"source" => $token,
"email" => $email)
);
?>