我目前正在尝试使用PHP PayPal REST API。但是,似乎我无法通过交易传递项目列表,因为“缺少必填字段”。
$item = new Item();
$item->setQuantity("1");
$item->setName("stuff");
$item->setPrice("305.00");
$item->setCurrency("USD");
$amount = new Amount();
$amount->setCurrency("USD");
$amount->setTotal("305.00");
$item_list = new ItemList();
$item_list->setItems(array($item));
$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription("This is incredibly awesome.");
$transaction->setItem_list($item_list);
我已按照文档(https://developer.paypal.com/webapps/developer/docs/api/#common-objects)中的“公共对象”填写了Paypal文档认为“必需”的所有字段。但是当我尝试重定向到Paypal以启动交易时,我被抛出此错误:
异常:访问时获得Http响应代码400 https://api.sandbox.paypal.com/v1/payments/payment。串(269) “{” 名 “:” VALIDATION_ERROR “ ”细节“:[{ ”场“: ”交易[0] .item_list.items [0] .sku“, ”问题“:” 必选 字段缺少“}”,“消息”:“无效的请求 - 请参阅 详情 “ ”information_link“: ”https://developer.paypal.com/docs/api/#VALIDATION_ERROR“, ”debug_id“: ”9e292fc3a312d“}”
当我注释掉$ transaction-> setItem_list($ item_list);时,它可以正常工作。因此很明显项目列表或项目中缺少某些内容。但我看不清楚。
有什么想法吗?
答案 0 :(得分:5)
错误指向你:
transactions[0].item_list.items[0].sku
这个字段似乎是必需的我认为它只需要将sku放入项目数组中,所以让我们这样做: 尝试添加:
$item->setSKU("CODEHERE");
<强>后强>
$item->setCurrency("USD");