Remote API scripting

I’m submitting data to Remote API as seen below, the user is created but the password never works. I don’t understand, pretty frustrated. What am I doing wrong. private data replaced for security

LOG ENTRY: Fri Jul 13th, 2018 @ precisely 10:05 pm UTC
PHP v7.0.30 :: WordPress v4.9.7 :: s2Member v170722 :: s2Member Pro v170722
Memory 10.24 MB :: Real Memory 12.00 MB :: Peak Memory 10.26 MB :: Real Peak Memory 12.00 MB
www.mysite.com/?s2member_pro_remote_op=1
User-Agent: 
Array
(
[user_id] => 22
[password] => 
[pagenow] => index.php
[email_config] => 1
[processed] => yes
[user] => WP_User Object
    (
        [data] => stdClass Object
            (
                [ID] => 22
                [user_login] => test2@mytestdev.com
                [user_pass] => $P$B6KPZizaEPlpM6.sAulVaFoKjT0W1Ao
                [user_nicename] => test2mytestdev-com
                [user_email] => test2@mytestdev.com
                [user_url] => 
                [user_registered] => 2018-07-13 22:05:23
                [user_activation_key] => 
                [user_status] => 0
                [display_name] => test2@mytestdev.com
                [user_level] => 0
            )

        [ID] => 22
        [caps] => Array
            (
                [s2member_level1] => 1
            )

        [cap_key] => wp_capabilities
        [roles] => Array
            (
                [0] => s2member_level1
            )

        [allcaps] => Array
            (
                [read] => 1
                [level_0] => 1
                [access_s2member_level0] => 1
                [access_s2member_level1] => 1
                [s2member_level1] => 1
            )

        [filter] => 
        [site_id:WP_User:private] => 1
    )

[_pmr] => Array
    (
        [s2member_pro_remote_op] => {"op":"create_user","api_key":"supperlongapikeythatisprivateandnotincludedhere","data":{"user_login":"test2@mytestdev.com","user_email":"test2@mytestdev.com","modify_if_login_exists":"0","first_name":"Test2","last_name":"McDuck","s2member_level":"1","opt_in":"1","notification":"1"}}
        [ws_plugin__s2member_custom_reg_field_user_login] => test2@mytestdev.com
        [ws_plugin__s2member_custom_reg_field_user_email] => test2@mytestdev.com
        [ws_plugin__s2member_custom_reg_field_user_pass1] => ^%LzFgXTB0e$
        [ws_plugin__s2member_custom_reg_field_first_name] => Test2
        [ws_plugin__s2member_custom_reg_field_last_name] => McDuck
        [ws_plugin__s2member_custom_reg_field_s2member_level] => 1
        [ws_plugin__s2member_custom_reg_field_s2member_ccaps] => 
        [ws_plugin__s2member_custom_reg_field_s2member_registration_ip] => 
        [ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway] => 
        [ws_plugin__s2member_custom_reg_field_s2member_subscr_id] => 
        [ws_plugin__s2member_custom_reg_field_s2member_custom] => 
        [ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time] => 
        [ws_plugin__s2member_custom_reg_field_s2member_notes] => 
        [ws_plugin__s2member_custom_reg_field_opt_in] => 1
    )

[custom_reg_display_name] => full
[current_role] => subscriber
[level] => 1
[ccaps] => 
[role] => s2member_level1
[email] => test2@mytestdev.com
[login] => test2@mytestdev.com
[ip] => 
[subscr_baid] => 
[subscr_cid] => 
[auto_eot_time] => 
[notes] => 
[opt_in] => 1
[fname] => Test2
[lname] => McDuck
[name] => Test2 McDuck
[pass] => ^%LzFgXTB0e$
[subscr_gateway] => 
[subscr_id] => 
[custom] => 
[fields] => Array
    (
    )

[pr_times] => Array
    (
        [level] => 1531519523
        [level1] => 1531519523
    )

[eot] => 
[_COOKIE] => Array
    (
    )

)

This will never work because you are taking the user’s password, which has already been encrypted, and are then submitting it again via WordPress so that the encrypted password is getting encrypted a second time.

You need instead to insert the encrypted password directly into the database without going via WordPress.