使用 WooCommerce + Klarna 结帐
Klarna 支持要求我们将额外的商家数据 (EMD) 附加到订单中。我们已经实现了这一点(遵循https://docs.krokedil.com/klarna-checkout-for-woocommerce/customization/extra-merchant-data-emd/),以便完成的订单现在具有此信息。然而,Klarna 在我们做了几个测试订单后并不满意,只是简单地说“这是错误的”,当被问到哪里出了问题或如何解决时,他们的回答是“我们不对此提供支持”。
所以我的问题是,如何调整 EMD 代码(按照链接的指南),以便在这个额外的“附件”中发送所有可用信息?在这方面,我只有基本的编码知识。此外,他们希望接收 EventName 和 StartTime 字段,其中 EventName 可以是静态“预订”,并且 StartTime 在购物车对象之一中可用(它是可预订的产品)。
我不知道如何进行。
我的代码:
/**
* Filter order data sent to Klarna for adding EMD (Extra Merchant Data).
*
* Add-on functionality to Klarna Checkout for WooCommerce (https://wordpress.org/plugins/klarna-checkout-for-woocommerce/).
* This should be used for Klarnas new platform V3.
*
* Learn more about available attatchmenat types here: https://developers.klarna.com/en/se/kco-v3/checkout/extra-merchant-data/
**/
add_filter('kco_wc_api_request_args', 'emd_kco_wc_api_request_args');
function emd_kco_wc_api_request_args( $request_args ) {
if( is_user_logged_in() ) {
// User is logged in - add user_login as unique_account_identifier
$current_user = wp_get_current_user();
$klarna_emd_info = array(
'unique_account_identifier' => $current_user->user_login,
'account_registration_date' => date( 'Y-m-d\TH:i', strtotime( $current_user->user_registered ) ),
'account_last_modified' => date( 'Y-m-d\TH:i' ),
);
$klarna_emd_info = array( $klarna_emd_info );
} else {
// User is not logged in - send empty params
$klarna_emd_info = array(
'unique_account_identifier' => '',
);
$klarna_emd_info = array( $klarna_emd_info );
}
$body_attachment = json_encode( array(
'customer_account_info' => $klarna_emd_info
) );
$request_args['attachment']['content_type'] = 'application/vnd.klarna.internal.emd-v2+json';
$request_args['attachment']['body'] = $body_attachment;
return $request_args;
}
他们也给了我们这个链接,但我不知道如何使用这些信息: https ://docs.klarna.com/klarna-checkout/popular-use-cases/extra-merchant-data/