如何使用Shopify API更改订单的支付状态? [英] How to use the Shopify API to change the payment status of orders?

查看:13
本文介绍了如何使用Shopify API更改订单的支付状态?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我自己的Shopify商店构建一个iOS应用程序。我创建了一个私有APP,使用API密钥和密码调用格式为:

的API
https://apikey:password@hostname/admin/resource.json

尝试使用该接口更改订单的支付状态时出现问题。(我可以毫无问题地创建新订单)。我找不到任何用于更改订单财务状态的API。我不能通过修改订单来改变财务状况,甚至不能通过API进行任何交易,无论交易的"类型"是:"授权"、"捕获"或"销售"。

那么如何使用该接口更改订单的财务状态?

以下是使用接口的请求和响应示例:

调用的对象:

/admin/orders/#{order_id}/transactions.json

请求:

{
    "transaction": {
        "amount": 50, 
        "test":true,
        "kind": "sale"
    }
}

响应:

{"errors":{"kind":["sale is not a valid transaction"]}}

推荐答案

我之前更改订单状态时遇到一些问题,后来我解决了,为了消除错误,您应该注意以下事项。

订单价格应等于或低于订单的确切价格

  1. 价格<;确切订单价格,订单将标记为部分付款
  2. Price=根据确切的订单价格,订单将标记为已支付
  3. 支付价格>准确的订单价格,您将收到错误
  4. 订单状态为已支付,您将收到更改以下状态的错误消息 付款

POST /admin/orders/#{id}/transactions.json

{
  "transaction": {
    "amount": "10.00",
    "kind": "capture"
  }
}

$order_get	= $shopify('GET', '/admin/orders/'.$order_id.'.json' );
		
		$total_price = $order_get['total_price'];
		
		if( $order_get['financial_status'] != 'paid' ){
		
		
				$arguments	= array( "order" => array(
									'note' => 'Paid'
									)
							);
				
				$order_put = $shopify('PUT', '/admin/orders/'.$order_id.'.json', $arguments);
				
				
				$arg  = array( "transaction" => array(
								"amount" => $total_price,
								"kind"   => "capture"
								)
						);
				
				$order_put = $shopify('POST', '/admin/orders/'.$order_id.'/transactions.json', $arg);
		
		}

这篇关于如何使用Shopify API更改订单的支付状态?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆