如何将项目信息发送到贝宝?

时间:2013-10-07 19:55:41

标签: php json curl paypal paypal-sandbox

我正在尝试使用php中的json格式数组将项目信息发送到paypal,但我无法找到任何资源来弄清楚如何执行此操作。

这是我当前的json数组在php中用cURL传递给paypal:

$dataArray = array(
    "intent" => "sale",
    "redirect_urls" => array(
            "return_url" => $url_success,
            "cancel_url" => $url_cancel
        ),
    "payer" => array(
            "payment_method" => "paypal"
        )
);

$dataArray['transactions'][0] = array(
    'amount' => array(
        'total' => round($sale->GetTotal(), 2, PHP_ROUND_HALF_UP),
        'currency' => $sale->GetCurrency(),
        'details' => array(
            'subtotal' => round($sale->GetSubTotal(), 2, PHP_ROUND_HALF_UP),
            'tax' => round($sale->GetTax(), 2, PHP_ROUND_HALF_UP)
        )
    ),
    'description' => "Test Payment"
);

以上目前正在运作,但订单摘要在paypal上是空白的。我找到了以下代码来添加有关各个项目的信息。

// prepare individual items
$dataArray['transactions'][0]['item_list']['items'][] = array(
    'quantity' => '1',
    'name' => 'Womens Large',
    'price' => '0.01',
    'currency' => 'USD',
    'sku' => '31Wf'
);

$dataArray['transactions'][0]['item_list']['items'][] = array(
    'quantity' => '1',
    'name' => 'Womens Medium',
    'price' => '0.01',
    'currency' => 'USD',
    'sku' => '31WfW'
);

此代码无效。据说这适用于发布它的人。我不确定为什么两个项目似乎都将相同的项目添加到阵列中的相同位置,但这实际上是从该站点复制并粘贴,只更改了阵列名称,所以我确定这就是他们了。我一直试图找到我发现的网站,但我不记得我是如何到达那里的。我发现这个网站没有指定数组的哪些部分是必需的。我确定$ dataArray ['transactions']是必需的,但我不知道其余的标识符:([0] ['item_list'] ['items'] [])。有人能举例说明如何为多个项目发送此信息吗?谢谢!

1 个答案:

答案 0 :(得分:0)

好的,显然我毕竟这是正确的。事实证明我的问题是每个项目的价格字段没有加起来整个交易的小计。我有随机值来测试它。显然它需要匹配值。