Php WooCommerce REST API v3远程订购和支付,并将所有数据发送到WP

Php WooCommerce REST API v3远程订购和支付,并将所有数据发送到WP,php,woocommerce-rest-api,Php,Woocommerce Rest Api,我开始创建一个程序,我们可以按类别浏览产品。将项目添加到我们的购物车(在messenger中)并更新购物车等 我们已经将Stripe/PayPal连接到我们的应用程序,并希望在应用程序中处理我们端的一切。然后,当订单完成时,将整个订单作为数据数组发送到WP中 有几个问题,因为我被卡住了 我将使用API文档中的这一部分: 我了解到,如果您想获得付款代币,通常需要先创建订单,然后在付款后更新状态,但由于我们在场外进行整个订购和付款处理(仅利用WooCommerce目录),并且希望在WP之外的成功订

我开始创建一个程序,我们可以按类别浏览产品。将项目添加到我们的购物车(在messenger中)并更新购物车等

我们已经将Stripe/PayPal连接到我们的应用程序,并希望在应用程序中处理我们端的一切。然后,当订单完成时,将整个订单作为数据数组发送到WP中

有几个问题,因为我被卡住了

我将使用API文档中的这一部分:

我了解到,如果您想获得付款代币,通常需要先创建订单,然后在付款后更新状态,但由于我们在场外进行整个订购和付款处理(仅利用WooCommerce目录),并且希望在WP之外的成功订购过程后拍摄订单,我有点困惑

我们可以找到很多关于缺少购物车功能的信息,除非您使用cocart之类的工具,我们不希望这样,因为我们不能要求客户都安装另一个工具来使用我们的工具


有人遇到过类似的使用案例吗?

即使WP本身不存在支付方式,也可以使用支付方式作为参考吗?

是的,它们基本上是字符串。您可以传递任何字符串类型的数据。它是否存在于wp中并不重要

正如您所说的“如果您想获得支付令牌,通常需要先创建订单,然后在支付后更新状态”

这是正确的。首先,您需要创建订单

为什么?


因为在大多数支付网关中,都会有一个名为orderId的字段,用于将订单id与该交易绑定,并保持交易的干净性。因此,在创建订单时,您需要先创建订单,然后将状态设置为pending。然后您将获得orderId,现在将用户重定向到支付网关。一旦用户再次返回,将订单状态更新为processing if it success or failure if it failed

是否可以使用付款方式作为参考,即使付款方式本身不存在于WP中?

是的,它们基本上是字符串。您可以传递任何字符串类型的数据。它是否存在于wp中并不重要

正如您所说的“如果您想获得支付令牌,通常需要先创建订单,然后在支付后更新状态”

这是正确的。首先,您需要创建订单

为什么?


因为在大多数支付网关中,都会有一个名为orderId的字段,用于将订单id与该交易绑定,并保持交易的干净性。因此,在创建订单时,您需要先创建订单,然后将状态设置为pending。然后您将获得orderId,现在将用户重定向到支付网关。一旦用户再次返回,将订单状态更新为processing if it success或failure if it failure

谢谢。自从我第一次发帖以来,我已经走了更长的路。我现在可以做任何事了,除了一件不太好的事。用户必须输入他们的地址两次,一次在messenger中,然后再在Stripe webview中。所以,也就是说,我倾向于在woocommerce商店本身的iframe中完成付款。但是,现在我不知道如何让吴知道我发送给谁,我需要正确的支付URL。我在创建订单时看到它存在,但我需要以某种方式检索它。知道在哪里吗,在文档中找不到它?我在一个未付款的订单中注意到了这个URL,如果我们能以某种方式得到它,那就太好了:store\u URL/afrekenen/order pay/1324/?pay\u for\u order=true&key=wc\u order\u 8N4n5ACi显然是“afrekenen”应该是一个变量,因为这是我们版本的荷兰语。你可以在paytm插件中自定义它。我想不完全,但在某种程度上…谢谢。自从我第一次发帖以来,我已经走了更长的路。我现在可以做任何事了,除了一件不太好的事。用户必须输入他们的地址两次,一次在messenger中,然后再在Stripe webview中。所以,也就是说,我倾向于在woocommerce商店本身的iframe中完成付款。但是,现在我不知道如何让吴知道我发送给谁,我需要正确的支付URL。我在创建订单时看到它存在,但我需要以某种方式检索它。知道在哪里吗,在文档中找不到它?我在一个未付款的订单中注意到了这个URL,如果我们能以某种方式得到它,那就太好了:store\u URL/afrekenen/order pay/1324/?pay\u for\u order=true&key=wc\u order\u 8N4n5ACi显然是“afrekenen”应该是一个变量,因为这是我们版本的荷兰语。你可以在paytm插件中自定义它,我想不是完全的,但在某种程度上。。。
<?php
$data = [
    'payment_method' => 'bacs',
    'payment_method_title' => 'Direct Bank Transfer',
    'set_paid' => true,
    'billing' => [
        'first_name' => 'John',
        'last_name' => 'Doe',
        'address_1' => '969 Market',
        'address_2' => '',
        'city' => 'San Francisco',
        'state' => 'CA',
        'postcode' => '94103',
        'country' => 'US',
        'email' => 'john.doe@example.com',
        'phone' => '(555) 555-5555'
    ],
    'shipping' => [
        'first_name' => 'John',
        'last_name' => 'Doe',
        'address_1' => '969 Market',
        'address_2' => '',
        'city' => 'San Francisco',
        'state' => 'CA',
        'postcode' => '94103',
        'country' => 'US'
    ],
    'line_items' => [
        [
            'product_id' => 93,
            'quantity' => 2
        ],
        [
            'product_id' => 22,
            'variation_id' => 23,
            'quantity' => 1
        ]
    ],
    'shipping_lines' => [
        [
            'method_id' => 'flat_rate',
            'method_title' => 'Flat Rate',
            'total' => 10
        ]
    ]
];

print_r($woocommerce->post('orders', $data));
'payment_method' => 'stripe',
'payment_method_title' => 'Offsite Payment Method',