2017-04-25 33 views
0

我試過下面的代碼,並試圖從Android發佈值來下訂單,但每次我在Chrome上測試它時,都會給出http 500錯誤,而Android會給服務器提供錯誤。不知道我在哪裏搞砸,認真的幫助將被appriciated。謝謝 問我是否需要看看android代碼,但我認爲這並不重要,因爲我給$ data中的硬編碼值。無法創建訂單Woocommerce其他Api php

<?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' => '[email protected]', 
    '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()); 
    } 
} 
+1

http://stackoverflow.com/questions/36729701/programmatically-creating-new-order-in-woocommerce/36929630#36929630 –

+0

@MahaDev我正在使用Woocommerce REST API,我不直接在functions.php中編碼或者網站本身。 –

+0

@MahaDev我跟着這個https://woocommerce.github.io/woocommerce-rest-api-docs/?php#order-properties –

回答

1
$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); 

請你試試上面的代碼?

+0

是的,這工作得很好,謝謝 –

+0

好吧,剛發現另一個問題,fileds不正確得到映射,如果我把'first_name' =>'約翰'它不會將它映射到訂單,但它確實創建並命名爲空白名稱。 –

+0

先生你認爲你也可以幫助我嗎? 「billing_address」:{「first_name」:「」,「last_name」:「」,「company」:「」,「address_1」:「」,「a ddress_2」:「」,仍然嘗試使用 –

1

最後,我經過一番研究後發現它。以下是woocommerce checkout webservice的工作代碼,可以幫助您 -

/*** 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" => "[email protected]", 
            "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" => "[email protected]", 
            "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); ` 

乾杯!