Php 我们应该如何将购物车详细信息传递给amazon checkout?

Php 我们应该如何将购物车详细信息传递给amazon checkout?,php,zend-framework,amazon-s3,Php,Zend Framework,Amazon S3,我正在尝试创建amazon checkout的基本实现。此代码已从我的控制器获取 public function amazAction() { // Key from Amazon $merchant_id = 'xxxxx'; $aws_access_key_id = 'xxxxx'; $aws_secret_access_key = 'xxxxx'; // Set up cart $form['aws_access_key_id'] = $

我正在尝试创建amazon checkout的基本实现。此代码已从我的控制器获取

public function amazAction()
{
    // Key from Amazon
    $merchant_id = 'xxxxx';
    $aws_access_key_id = 'xxxxx'; 
    $aws_secret_access_key = 'xxxxx';

    // Set up cart
    $form['aws_access_key_id'] = $aws_access_key_id;
    $form['currency_code'] = 'USD';
    $form['item_merchant_id_1'] = $merchant_id;
    $form['item_price_1'] = 10;
    $form['item_quantity_1'] = 1;
    $form['item_sku_1'] = 11;
    $form['item_title_1'] = test;
    ksort($form);

    // Encode order as string and calculate signature
    $order = '';
    foreach ($form as $key => $value) {
        $order .= $key . "=" . rawurlencode($value) . "&";
    }
    $form['merchant_signature'] = base64_encode(hash_hmac('sha1', $order, $aws_secret_access_key, true));

    // Return string with Amazon javascript and HTML form
    // Assumes you already have jQuery loaded elsewhere on page
    // URL's link to live site, not sandbox!
    $this->view->amazon_order_html = '<script type="text/javascript" src="https://images-na.ssl-images-amazon.com/images/G/01/cba/js/widget/widget.js"></script>
    <form target="_blank" method="post" action="https://payments-sandbox.amazon.com/checkout/' . $merchant_id . '">';
    foreach ( $form as $key => $value ) {   
        $this->view->amazon_order_html .= '<input type="hidden" name="' . $key . '" value="' . $value . '" />';
    }
    $this->view->amazon_order_html .= '<input alt="Checkout with Amazon Payments" src="https://payments-sandbox.amazon.com/gp/cba/button?ie=UTF8&color=orange&background=white&cartOwnerId=' . $merchant_id . '&size=large" type="image"></form>';
}
公共功能动作()
{
//来自亚马逊的钥匙
$merchant_id='xxxxx';
$aws_访问_密钥_id='xxxxx';
$aws_secret_access_key='xxxxx';
//设置购物车
$form['aws\u access\u key\u id']=$aws\u access\u key\u id;
$form['currency_code']='USD';
$form['item\u merchant\u id\u 1']=$merchant\u id;
$form['item_price_1']=10;
$form['item\u quantity\u 1']=1;
$form['item_sku_1']=11;
$form['item_title_1']=测试;
ksort(表格);
//将订单编码为字符串并计算签名
$order='';
foreach($key=>$value形式){
$order.=$key.='.rawurlencode($value)。“&”;
}
$form['merchant_signature']=base64_编码(hash_hmac('sha1',$order,$aws_secret_access_key,true));
//使用AmazonJavaScript和HTML表单返回字符串
//假设您已经在第页的其他位置加载了jQuery
//URL的链接到现场,而不是沙盒!
$this->view->amazon\u order\u html=
';
foreach($key=>$value形式){
$this->view->amazon\u order\u html.='';
}
$this->view->amazon\u order\u html.='';
}
当我运行这个页面时,我从amazon得到了以下错误

很抱歉,这张订单有问题。请联系 商户直接请求协助完成此订单

如何修复此错误?我还需要知道如何在隐藏字段中传递折扣价格、装运名称和装运率的金额


请就此提供建议对于装运,请尝试添加将输出以下内容的内容:

<input type="hidden" name="shipping_method_price_per_shipment_amount_1" value="0.00" />
<input type="hidden" name="shipping_method_price_per_unit_rate_1" value="0.00" />
<input type="hidden" name="shipping_method_price_type_1" value="weight_based" />
<input type="hidden" name="shipping_method_region_1" value="world_all" />
<input type="hidden" name="shipping_method_service_level_1" value="standard" />
我希望这对你有用

$form['shipping_method_price_per_shipment_amount_1'] = 0.00;
$form['shipping_method_price_per_unit_rate_1'] = 0.00;
$form['shipping_method_price_type_1'] = 'weight_based';
$form['shipping_method_region_1'] = 'world_all';
$form['shipping_method_service_level_1'] = 'standard';