0

使用 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/

4

0 回答 0