Php 我们应该如何将购物车详细信息传递给amazon checkout?
我正在尝试创建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'] = $
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';