فرستادن فرم از طریق API

hadoo

تازه وارد
20/5/12
13
0
1
سلام, من یک فرم در سایت www.ratenkauf-schufafrei.de دارم که فرم پرداخته (Checkout) و با پر کردن این فرم میخوام عینا همین فرم برای یک سایت دیگه هم فرستاده بشه, تنها شرط اون سایت اینه که فیلدهای پر شده دقیقا باید مثل کد API باشه که خودشون دادن. 
من در تم کودکم فایل ضمیمه اونها و کدهایی که فیلدهای من رو با فیلدهای اونها برابر نشون بده قرار دادم در ابتدا کار میکرد ولی متاسفانه الان وقتی که میخام فرم رو بفرستم پیغام خطای Unprocessable Entity میگیره میشه لطفآ کمک کنید ببینیم مشکل کار کجاس؟

با تشکر


فایل ضمیمه آنها: (class-Maxda-API)

<?php

class MaxdaAPI {

private static $urlEndpoint = 'https://connect-test.maxda.de/1.2';
private static $defaultRequestArguments = array(
'httpversion' => '1.1',
'headers' => array (
'Authorization' => '653e6998-c679-4b09-bb8c-d8b2b475373c',
'Content-Type' => 'application/json; charset=utf-8',
),
);

public function __construct() {
add_filter( 'query_vars', array( $this, 'addMaxdaQueryVars' ) );
}


public static function addMaxdaQueryVars( $public_query_vars ) {
$public_query_vars[] = 'maxdaAction';
$public_query_vars[] = 'maxdaID';
return $public_query_vars;
}


public static function createRequestMaxda( $fields ) {
$urlEndpointCreate = self::$urlEndpoint . '/leads';

/*
• phone_alt: Alternative Telefonnummer
• employed_as: Anstellungsverhältnis („employee“ für Arbeitnehmer, „official“ für Beamter, „freelancer“ für Selbstständiger, „pensioner“ für Rentner, „unemployed“ für Arbeitsloser, „trainee“ für Auszubildender oder „worker“ für Arbeiter)
• employed_since: Beginn des Anstellungsverhältnis (Datum im Format JJJJ-MM-TT)
• employer: Name des Arbeitgebers
• net_income: Nettoeinkommen (numerisch)
• additional_income: Zusätzliches Einkommen (numerisch)
• rent: Monatliche Miete (numerisch)
• nationality: Staatsangehörigkeit (entweder „deutsch“ oder „sonstige“)
• marital_status: Familienstand („single“ für alleinstehend, „married“ für verheiratet, „widowed“ für verwitwet, „divorced“ für geschieden, „separated“ für getrennt lebend)
• children: Anzahl Kinder (numerisch)
• realty: Grundbesitz vorhanden? („yes“ für ja, „no“ für nein)
• realty_creditrate: mtl. Kreditabtrag / Hausrate (numerisch)
• realty_income: mtl. Mieteinnahmen (numerisch)
• referrer: URL der Website von der aus der Kredit angefragt wurde
*/


$requestBody = $fields;
$requestBody['birthdate'] = '1980-01-01'; // * Geburtsdatum (JJJJ-MM-TT)
$requestBody['zipcode'] = '63150'; // * Postleitzahl
$requestBody['city'] = 'Heusenstamm'; // * Ort
$requestBody['resident_since'] = '2010-01-01'; // * Wohnhaft an angegebener Adresse seit (JJJJ-MM-TT)
$requestBody['email'] = 'aw@digisales.de'; // * E-Mail-Adresse
$requestBody['phone'] = '1234567890'; // * Telefonnummer
$requestBody['credit_request'] = 3000; // * Gewünschter Kreditbetrag (numerisch)
$requestBody['accept_schufa'] = 'no'; // Schufa-Auskunft darf eingeholt werden [yes/no]

$arguments = self::$defaultRequestArguments;
$arguments['body'] = json_encode( $requestBody );

return wp_remote_post( $urlEndpointCreate, $arguments );
}

public static function getLead( $leadID ) {
$urlEndpointLead = self::$urlEndpoint . '/leads/' . $leadID;
$arguments = self::$defaultRequestArguments;

return wp_remote_get( $urlEndpointLead, $arguments );
}

// TODO update lead $arguments['method'] = 'PUT');
}
new MaxdaAPI();




فایل که Function.php من نوشتم.

<?php

function theme_enqueue_styles() {
wp_enqueue_style( 'avada-parent-stylesheet', get_template_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

function hsf_lang_setup() {
$lang = get_stylesheet_directory() . '/languages';
load_child_theme_textdomain( 'storex', $lang );
}
add_action( 'after_setup_theme', 'hsf_lang_setup' );



require_once( 'class-Maxda-API.php' );

add_action('woocommerce_checkout_process', 'maxda_order', 10, 1);
function maxda_order() {
/*
$items = WC()->cart->get_items();
foreach ($items as $item) {
// Do something clever
}
*/


error_log( print_r( $items ,true) );
error_log( print_r( $_POST ,true) );

$fields = array();
if ( $_POST['billing_field_701'] == 'Herr' ) {
$fields['gender'] = 'male';
} else {
$fields['gender'] = 'female';
}
$fields['firstname'] = $_POST['billing_first_name'];

$fields['lastname'] = $_POST['billing_last_name'];

$fields['address'] = $_POST['billing_field_362'];

$fields['zipcode'] = $_POST['billing_field_372'];

$fields['city'] = $_POST['billing_field_628'];

$fields['birthdate'] = $_POST['billing_field_828'] . '-' . $_POST['billing_field_776'] . '-' . $_POST['billing_field_76'];

$fields['email'] = $_POST['billing_email'];

$fields['phone'] = $_POST['billing_phone'];

$fields['phone_alt'] = $_POST['billing_field_192'];

if ( $_POST['billing_field_259'] == 'Arbeitnehmer' ) {
$fields['employed_as'] = 'employee';
} else if ( $_POST['billing_field_259'] == 'Beamter' ) {
$fields['employed_as'] = 'official';
} else if ( $_POST['billing_field_259'] == 'Selbstständiger' ) {
$fields['employed_as'] = 'freelancer';
} else if ( $_POST['billing_field_259'] == 'Arbeiter' ) {
$fields['employed_as'] = 'worker';
} else if ( $_POST['billing_field_259'] == 'Rentner' ) {
$fields['employed_as'] = 'pensioner';
} else if ( $_POST['billing_field_259'] == 'Arbeitsloser' ) {
$fields['employed_as'] = 'unemployed';
} else if ( $_POST['billing_field_259'] == 'Auszubildender' ) {
$fields['employed_as'] = 'trainee';
}

$fields['employer'] = $_POST['billing_field_431'];

$fields['employed_since'] = $_POST['billing_field_766'] . '-' . $_POST['billing_field_143'];

$fields['net_income'] = $_POST['billing_field_970'];

$fields['additional_income'] = $_POST['billing_field_573'];

$fields['rent'] = $_POST['billing_field_232'];

if ( $_POST['billing_field_391'] == 'Ja' ) {
$fields['realty'] = 'yes';
} else {
$fields['realty'] = 'no';
}


if ( $_POST['billing_field_992'] == 'deutsch' ) {
$fields['nationality'] = 'entweder';
} else {
$fields['nationality'] = 'oder';
}

$fields['marital_status'] = $_POST['billing_field_316'];

if ( $_POST['billing_field_316'] == 'ledig' ) {
$fields['marital_status'] = 'single';

} else if ( $_POST['billing_field_316'] == 'verheiratet' ) {
$fields['marital_status'] = 'married';

} else if ( $_POST['billing_field_316'] == 'verwitwet' ) {
$fields['marital_status'] = 'widowed';

} else if ( $_POST['billing_field_316'] == 'geschieden' ) {
$fields['marital_status'] = 'divorced';

} else if( $_POST['billing_field_316'] == 'getrennt lebend' ) {
$fields['marital_status'] = 'separated';
}



$fields['children'] = $_POST['billing_field_834'];





// TODO all fields

$response = MaxdaAPI::createRequestMaxda( $fields );
if ( is_wp_error( $response ) ) {
error_log( print_r( $response, true ) );
throw new Exception( __( 'An error occurred, please try again later.', 'storex' ) );
}

$responseCode = wp_remote_retrieve_response_code( $response );
if ( $responseCode != 201 ) {
error_log( print_r( $response, true ) );
throw new Exception( wp_remote_retrieve_response_message( $response ) );
}

$responseBody = json_decode( wp_remote_retrieve_body( $response ) );
}




مشخصات فیلدهای آنها:
 

کد:
• gender: Anrede („male" für männlich oder „female" für weiblich) *
• firstname: Vorname *
• lastname: Nachname *
• birthdate: Geburtsdatum (im Format JJJJ-MM-TT) *
• address: Anschrift (Straße inkl. Hausnummer) *
• zipcode: Postleitzahl *
• city: Ort *
• resident_since: Wohnhaft an angegebener Adresse seit (Datum im Format JJJJ-MM-TT)
• email: E-Mail-Adresse *
• phone: Telefonnummer *
• phone_alt: Alternative Telefonnummer
• credit_request: Gewünschter Kreditbetrag (numerisch) *
• employed_as: Anstellungsverhältnis („employee“ für Arbeitnehmer, „official“ für Beamter, „freelancer“ für Selbstständiger, „pensioner“ für Rentner, „unemployed“ für Arbeitsloser, „trainee“ für Auszubildender oder „worker“ für Arbeiter)
• employed_since: Beginn des Anstellungsverhältnis (Datum im Format JJJJ-MM-TT)
• employer: Name des Arbeitgebers
• net_income: Nettoeinkommen (numerisch)
• additional_income: Zusätzliches Einkommen (numerisch)
• rent: Monatliche Miete (numerisch)
• nationality: Staatsangehörigkeit (entweder „deutsch“ oder „sonstige“)
• marital_status: Familienstand („single“ für alleinstehend, „married“ für verheiratet, „widowed“ für verwitwet, „divorced“ für geschieden, „separated“ für getrennt lebend)
• children: Anzahl Kinder (numerisch)
• realty: Grundbesitz vorhanden? („yes“ für ja, „no“ für nein)
• realty_creditrate: mtl. Kreditabtrag / Hausrate (numerisch)
• realty_income: mtl. Mieteinnahmen (numerisch)
• accept_schufa: Schufa-Auskunft darf eingeholt werden („yes“ für ja, „no“ für nein)
• referrer: URL der Website von der aus der Kredit angefragt wurde