Я попробовал следующий код и попытался отправить значения из Android, чтобы разместить заказ, но каждый раз, когда я проверяю его на Chrome, он выдает ошибку http 500, а Android выдает ошибку сервера. Не знаю, где я облажался, серьезная помощь будет оценена. Спасибо. Спросите меня, нужно ли вам взглянуть на код Android, но я думаю, что здесь это не имеет значения, потому что я даю жестко закодированные значения в $ data.

<?php

require_once( 'lib/woocommerce-api.php' );

$pageNum=1;
$pageNum=$_GET['page_num'];

$options = array(
'debug'           => true,
'return_as_array' => false,
'validate_url'    => false,
'timeout'         => 30,
'ssl_verify'      => false,
);

try {

$client = new WC_API_Client( 'https://www.move2mart.com/', 'ck_0afa3a49305683160fe34189553a660053bd4e6239', 'cs_7dc38a7b52c3fdd34qw61e34090be636ae3364b196', $options );

//$data=array();
$data=[
'payment_method' => 'cod',
'payment_method_title' => 'Cash on Delivery',
'set_paid' => false,
'billing' => [
    'first_name' => 'John',
    'last_name' => 'Doe',
    'address_1' => '969 Market',
    'city' => 'Karachi',
    'email' => 'princeali@testing.com',
    'phone' => '03123121995'
], 'line_items' => [

    [
        'product_id' => 779,
        'quantity' => 1
    ]
]
];  

print_r($client->post('orders', $data));

if($_POST !=null) {
}

else{
  echo "Null POST Request";
}   
} catch ( WC_API_Client_Exception $e ) {

   echo $e->getMessage() . PHP_EOL;
   echo $e->getCode() . PHP_EOL;

   if ( $e instanceof WC_API_Client_HTTP_Exception ) {
      print_r( $e->get_request() );
      print_r( $e->get_response() );
   }
}
0
Prince Ali 25 Апр 2017 в 09:09

2 ответа

Лучший ответ
$orderData = array(    
    "order" => array(
        "billing_address" => array(
            array(
                "first_name" => "",
                "last_name" => "",
                "company" => "",
                "address_1" => "",
                "address_2" => "",
                "city" => "",
                "state" => "",
                "postcode" => "",
                "country" => "",
                "email" => "",
                "phone" => "",
            )
        ),
        "shipping_address" => array(
            array(
                "first_name" => "",
                "last_name" => "",
                "company" => "",
                "address_1" => "",
                "address_2" => "",
                "city" => "",
                "state" => "",
                "postcode" => "",
                "country" => "",
            )
        ),
        "customer_id" => 1,
        "line_items" => array( 
            array(
                "product_id" => 1, 
                "quantity" => 1
            ) 
        )
    )
);

$client->orders->create($orderData);

Не могли бы вы попробовать приведенный выше код?

3
Purvik Dhorajiya 25 Апр 2017 в 09:25

Наконец, я понял это после некоторого исследования. Ниже приведен рабочий код веб-службы woocommerce checkout, которая может вам помочь.

 /*** Just Copy & Paste and change your varriables **/

    //do your initial stuff 
    header('Content-type: application/json');
    $json_file=file_get_contents('php://input');
    $jsonvalue= json_decode($json_file,true);

     $user_id = $jsonvalue['user_id']; 
     $product_id = $jsonvalue['product_id']; 
     $quantity = $jsonvalue['quantity'];    

 //start order data 
 $orderData = array(    
     "order" => array(
     'payment_method' => 'paypal',
     'payment_method_title' => 'Paypal',
     'set_paid' => true,
    "billing_address" => array(
                                    "first_name" => "bfname",
                                    "last_name" => "blname",
                                    "company" => "testcompanybilling",
                                    "address_1" => "sec8",
                                    "address_2" => "e32",
                                    "city" => "noida",
                                    "state" => "Noida",
                                    "postcode" => "99999",
                                    "country" => "IN",
                                    "email" => "test@gmail.com",
                                    "phone" => "888899999999"

                            ),
      "shipping_address" => array(
                                    "first_name" => "sfname",
                                    "last_name" => "slname",
                                    "company" =>  "testcompanyshipping",
                                    "address_1" => "shakkarpur",
                                    "address_2" => "laxminigar",
                                    "city" => "New Delhi",
                                    "state" => "Delhi",
                                    "postcode" => "110092",
                                    "country" => "IN",
                                    "email" => "testsh@gmail.com",
                                    "phone" => "11009999"   
                              ),
    "customer_id" => $user_id,
    "line_items" => array( 
        array(
            "product_id" => $product_id, 
            "quantity" => $quantity
        ) 
      ),
    'shipping_lines' => array(
    array(
        'method_id' => 'flat_rate',
        'method_title' => 'Flat Rate',
        'total' => 10
    )
)
   )
);

//Create order usind order data
 $data =  $client->orders->create($orderData);
//echo '<pre>';
 //print_r($data);
$result['success']='true';
$result['error']="0";
$result['msg']='Your order has been successfully placed.';  
$result['data']=$data;  

 echo json_encode($result); `

Ура !!!

1
Satyendra Prakash 28 Апр 2017 в 11:22
43602892