问题描述
我正在使用Dokan Pro运行一个市场网站,其中集成了Stripe Connect。现在我想将iDeal与它集成在一起,但是他们还没有正式将它集成在一起,因此我正在按照Stripe的文档进行一些自定义编码,但是到目前为止我还无法实现任何目标。
Stripe为我提供了此文档:
https://stripe.com/docs/connect/direct-charges#create-a-charge
Stripe For Woocommerce上有一个官方插件,该插件也具有iDeal选项,但问题是它不能拆分付款,因为它不适用于Stripe Connect。我确实尝试编辑它的代码,但是在发送application_fee参数时却给了我一个错误。这是代码:
public function create_source( $order ) {
$currency = $order->get_currency();
$return_url = $this->get_stripe_return_url( $order );
$post_data = array();
$post_data['amount'] = WC_Stripe_Helper::get_stripe_amount( $order->get_total(),$currency );
$post_data['currency'] = strtolower( $currency );
$post_data['type'] = 'ideal';
$post_data['application_fee_amount'] = '10';
$post_data['owner'] = $this->get_owner_details( $order );
$post_data['redirect'] = array( 'return_url' => $return_url );
if ( ! empty( $this->statement_descriptor ) ) {
$post_data['statement_descriptor'] = WC_Stripe_Helper::clean_statement_descriptor( $this->statement_descriptor );
}
WC_Stripe_Logger::log( 'Info: Begin creating iDeal source' );
return WC_Stripe_API::request( apply_filters( 'wc_stripe_ideal_source',$post_data,$order ),'sources' );
}
任何帮助将不胜感激。
解决方法
假设:我假设您打算在客户向您的平台进行单笔订单/付款(其中包括来自多个提供商的商品/服务)时进行“拆分付款”。您需要分配付款,并将其中的一部分发送到多个目标帐户。
我认为有几件事情对您来说很困难:
- 我建议您查看更新后的Payment Intents guide for iDEAL,而不是来源。您应该发现它与Stripe API中所有最新文档的一致性更好。
- 如果您打算将付款拆分给多个收件人,则无法直接付费。相反,您应该使用"Separate Charges & Transfers"来允许将付款的一部分发送给多个商品/服务提供商。
在服务器上
:// Create a PaymentIntent:
$paymentIntent = \Stripe\PaymentIntent::create([
'amount' => 10000,'currency' => 'eur','payment_method_types' => ['ideal'],'transfer_group' => 'YOUR_ORDER_ID_123',]);
// Send $paymentIntent->client_secret to the client
在客户端上
://HTML
<div id="ideal-bank-element">
<!-- A Stripe Element will be inserted here. -->
</div>
//JS
// Create an instance of the idealBank Element
var idealBank = elements.create('idealBank',options);
// Add an instance of the idealBank Element into
// the `ideal-bank-element` <div>
idealBank.mount('#ideal-bank-element');
...
stripe.confirmIdealPayment(
'{{PAYMENT_INTENT_CLIENT_SECRET}}',{
payment_method: {
ideal: idealBank,billing_details: {
name: accountholderName.value,},return_url: 'https://your-website.com/checkout/complete',}
);
稍后在服务器上
:// Create a Transfer to a connected account (later):
$transfer = \Stripe\Transfer::create([
'amount' => 7000,'destination' => 'acct_123',]);
// Create a second Transfer to another connected account (later):
$transfer = \Stripe\Transfer::create([
'amount' => 2000,'destination' => 'acct_456',]);