我有一个使用 WordPress 和 WooCommerce 制作的电子商务网站,对于支付网关,我正在使用 stripe。我尝试了很多插件,例如 WooCommerce Stripe Payment Gateway,当我单击付款按钮时,它会将我带到 WooCommerce 结帐页面,付款将在那里,WooCommerce 将处理一切,但我想重定向到 stripe 结帐页。我找到了这个插件 Stripe Payment Plugin for WooCommerce .
这个插件将允许我重定向到 stripe checkout,但不幸的是,我猜它的代码中有一个错误,我收到此错误:
您不能使用
、line_items.amount
、line_items.currency
、line_items.name
或line_items.description
这个API版本。请使用line_items.images
或line_items.price
。line_items.price_data
我尝试自己修复它,但我不能这是它的 PHP 文件的一部分
$session_data['line_items'] = array(
[
'name' => esc_html( __( 'Total', 'payment-gateway-stripe-and-woocommerce-integration' ) ),
'amount' => $total,
'currency' => strtolower(get_woocommerce_currency()),
'quantity' => 1,
'images' => array($images),
]
);
if (empty($customer_id)) {
$customer = $this->create_stripe_customer( $order, $user);
$customer_id = $customer->id;
//saved stripe customer for charging cards later
update_user_meta($logged_in_userid, "_stripe_ch_customer_id", $customer_id);
}
$session_data['customer'] = $customer_id;
$session_data['payment_intent_data']['setup_future_usage'] = 'off_session';
$session_data['locale'] = $this->stripe_checkout_page_locale;
$session_data = apply_filters('wt_stripe_alter_checkout_request_params', $session_data, $order);
$session = \Stripe\Checkout\Session::create($session_data);
return array(
'result' => 'success',
'redirect' => $this->get_payment_session_checkout_url( $session->id, $order ),
);
这似乎与最近对新 API 版本 2022-08-01 的更改有关。
这些参数已移至
line_items.price_data
对象中。 为了以所需的新形状传递数据,您需要传递如下内容:
$session_data['line_items'] = array(['price_data' =>
[
'name' => esc_html( __( 'Total', 'payment-gateway-stripe-and-woocommerce-integration' ) ),
'amount' => $total,
'currency' => strtolower(get_woocommerce_currency()),
'quantity' => 1,
'images' => array($images),
]
]);
您可以查看更新的 API 参考文档以获取更多信息
如果您想绕过 WooCommerce 结帐并希望客户在单击网站上任意位置的结帐按钮时直接登陆 Stripe Checkout,那么您需要编写一个自定义插件,该插件将以编程方式创建 Stripe Checkout 会话并重定向所有结帐页面向 Stripe Checkout 会话发出请求。
该插件提供相同的开箱即用功能: https://codecanyon.net/item/woocommerce-stripe-checkout-plug-and-play/52826807?ref=sleekalgo