将亚马逊 MWS 暂存器查询转换为 API 调用

2024-06-23

我想知道是否有办法转换我的亚马逊 MWS便笺 https://mws.amazonservices.co.uk/scratchpad/index.html对 API 调用的查询

例如使用 MWS 暂存器时,我会得到一个要签名的字符串

   "mws.amazonservices.co.uk"
   ."/Products/2011-10-01"
   ."AWSAccessKeyId=xxx&Action=ListMatchingProducts"
   ."&MarketplaceId=xxx&Query=star%20wars&SellerId=xxx"
   ."&SignatureMethod=HmacSHA256&SignatureVersion=2
   ."&Timestamp=2012-07-27T18%3A59%3A30Z&Version=2011-10-01

经过几天的尝试为了工作,我已经放弃了,一直希望下面的函数会返回一个 xml 字符串......但没有运气

function callAmazon(){
    $apicall =  "mws.amazonservices.co.uk"
   ."/Products/2011-10-01"
   ."AWSAccessKeyId=xxx&Action=ListMatchingProducts"
   ."&MarketplaceId=xxx&Query=star%20wars&SellerId=xxx"
   ."&SignatureMethod=HmacSHA256&SignatureVersion=2
   ."&Timestamp=2012-07-27T18%3A59%3A30Z&Version=2011-10-01   
    
    $resp = simplexml_load_file($apicall);   //make the call
}

有人有任何可能的建议吗?


我也为此苦苦挣扎了很长一段时间,以下是我为 Products API 解决这个问题的方法:

<?php
require_once('.config.inc.php');
$base_url = "https://mws.amazonservices.com/Products/2011-10-01";
$method = "POST";
$host = "mws.amazonservices.com";
$uri = "/Products/2011-10-01";

function amazon_xml($searchTerm) {

    $params = array(
        'AWSAccessKeyId' => AWS_ACCESS_KEY_ID,
        'Action' => "ListMatchingProducts",
        'SellerId' => MERCHANT_ID,
        'SignatureMethod' => "HmacSHA256",
        'SignatureVersion' => "2",
        'Timestamp'=> gmdate("Y-m-d\TH:i:s.\\0\\0\\0\\Z", time()),
        'Version'=> "2011-10-01",
        'MarketplaceId' => MARKETPLACE_ID,
        'Query' => $searchTerm,
        'QueryContextId' => "Books");

    // Sort the URL parameters
    $url_parts = array();
    foreach(array_keys($params) as $key)
        $url_parts[] = $key . "=" . str_replace('%7E', '~', rawurlencode($params[$key]));

    sort($url_parts);

    // Construct the string to sign
    $url_string = implode("&", $url_parts);
    $string_to_sign = "GET\nmws.amazonservices.com\n/Products/2011-10-01\n" . $url_string;

    // Sign the request
    $signature = hash_hmac("sha256", $string_to_sign, AWS_SECRET_ACCESS_KEY, TRUE);

    // Base64 encode the signature and make it URL safe
    $signature = urlencode(base64_encode($signature));

    $url = "https://mws.amazonservices.com/Products/2011-10-01" . '?' . $url_string . "&Signature=" . $signature;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    $response = curl_exec($ch);

    $parsed_xml = simplexml_load_string($response);

    return ($parsed_xml);
}

?>

The .inc.config.php文件包含我的访问密钥、秘密密钥等。

EDIT:
$searchterm是我从表单传递的 isbn。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将亚马逊 MWS 暂存器查询转换为 API 调用 的相关文章

  • 用 CSV 中的数据替换多个字符串

    我从所有接入点获得了 CSV 带有标头 并希望通过 XML 上传将它们添加到 Zabbix 由于我不想手动为每个 AP 创建 XML 文件 因此我将尝试在 PowerShell 中执行此操作 但是 怎么办 我尝试过一些事情 Get Cont
  • PHP静态函数

    我有一个关于 php 中的静态函数的问题 假设我有一堂课 class test public function sayHi echo hi if I do test sayHi 它工作没有问题 class test public stati
  • IOS 向特定用户推送通知?

    是否可以向特定设备发送 iOS 推送通知 我构建了一个论坛类型的应用程序 用户可以创建问题 其他人可以回答它 我需要向提出问题的特定用户发送 iOS 推送通知 通知他们问题已得到解答 这可以通过 PHP 或其他方法来完成吗 是的 您绝对可以
  • 使用 2 个商户账户的 1 笔交易

    我需要设置一个账单支付系统 以允许使用 2 个商家帐户进行 1 笔交易 例如 1 个商家帐户附加到接收资金的客户 假设 30 美元的购买费用 并且附加我们将向帐单支付服务提供商收取 3 美元的帐单支付费用 因此 资金需要转入 2 个独立的商
  • Laravel 7 会话在不同域中的 IFRAME 上中断

    我尝试在这里开发一个简单的 Laravel 应用程序 https shopifyapp sjranjan com https shopifyapp sjranjan com 此登录工作正常 现在我将上面的 URL 推送到此页面的 ifram
  • 当用户单击链接时如何在表中创建新字段

    我的表格如下图所示 In order to insert data from this form into table I coded this supplier info supplier name POST supplier name
  • php-fpm 需要在监狱环境中放置哪些系统文件才能在 ubuntu 上正常运行?

    我在 ubuntu 12 04 上使用 php5 fpm 并且为 nginx 托管的每个域都有单独的池和 chroot 位置 不过 我知道有些系统文件需要直接放在jail中 但是我需要哪些呢 我知道 dns 解析当前不起作用 并且我读过一些
  • 为什么在打开的文件上取消链接成功?

    为什么打开的文件被删除了 在 Windows Xamp 上 我收到消息 仍在工作 但在其他 PHP 服务器上 文件被删除 即使它已打开 并且我收到消息 文件已删除 我也可以从 FTP 删除文件 即使第一个脚本仍在工作 UNIX 系统通常允许
  • 使用 R 并行处理 XML 节点

    我正在尝试与 R 并行处理 XML 文档xml2包装和foreach功能 但我收到 node attrs x node nsMap ns 中的错误 外部指针无效 尝试导出树集群导出 示例代码 library xml2 library for
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • 如何在 Linux 上的 php 中启用 --enable-soap?

    这就是问题所在 我在 Apache 上安装了 PHP 5 2 9 但无法升级 PHP 有没有办法在 PHP 5 2 9 中启用 SOAP PHP 手册中说 要启用 SOAP 支持 请使用 enable soap 配置 PHP 这根本没有帮助
  • 如何将parameters.yml中的Symfony参数注入Behat 3配置中?

    我需要设置base url for Behat MinkExtension 这是我的一部分应用程序 配置 parameters yml parameters behat base url http my app local app test
  • 在 Scala 中修改 XML 而不进行突变?

    我正在尝试替换 XML 片段 并且在此过程中需要一个累加器 假设我有一个填空题存储为 XML 如下所示 val q
  • Laravel 4 类如何检测它是在 Artisan 任务中运行还是在浏览器请求中运行?

    我有一些应用程序启动代码 需要知道它当前是在 artisan 任务中运行还是在浏览器请求中调用 我如何在 Laravel 4 中检测到这一点 这是最好的方法 if App runningInConsole echo Running in a
  • 在 Woocommerce 结帐页面上移动亚马逊按钮

    我需要移动 Woocommerce 结账页面上的 Amazon Pay 消息 按钮 我们正在使用Woocommerce 的亚马逊支付 https woocommerce com products pay with amazon 当我查看插件
  • 从队列 ID 获取 Jenkins 作业构建 ID

    我成功地使用它来启动 Jenkins 作业 curl X POST http jenkins srv 8080 job MY JOB buildwithParameters this 1 that 2 user name pass 我还可以
  • 无法在 PHP 中接收 JSON POST 请求

    我正在将 JSON 对象从 Java 传递到 PHP 我正在使用 jdk 1 8 和 WAMPserver 下面是Java代码 import java io IOException import org apache http client
  • SQLite适合并发读吗?

    在没有锁定的情况下 SQLite 数据库的性能是否能达到每秒 50 次读取左右 我正在尝试确定它是否可以在不会经常 写入 的 PHP 网站上使用 它主要是从一小部分表中读取相同的数据 没问题 并发读 写实际上会被 SQLite 序列化 所以
  • cURL 错误 28:5001 毫秒后解析超时

    我使用 WordPress 最近将我的网站从 cpanel 主机移动到带有 directadmin 面板的 Linux 服务器 转账后立即发现客户在通过EDD插件下载时出现以下错误 cURL 错误 28 5001 毫秒后解析超时 我也遇到了
  • PHP SFTP 简单文件上传

    我正在使用 phpseclib SFTP 类 并尝试上传这样的文件 sftp new Net SFTP mydomain com if sftp gt login user password exit Login Failed sftp g

随机推荐

  • 当 git 说它正在“解决增量”时,它在做什么?

    在存储库的第一次克隆期间 git 首先接收对象 然后花费大约相同的时间 解析增量 在克隆的这个阶段实际上发生了什么 的阶段git clone are 接收存储库数据库中所有对象的 pack 文件 为收到的包创建索引文件 查看头部修订版 显然
  • 使用 Linq C# 检查 XML 节点是否具有属性?

    如何检查节点是否确实具有特定属性 我有一个包含几个节点的 XML 文件 如下所示
  • 在 PHP 中解析 CFML 标签

    背景 我一直在跑步a site http www gastronomicfightclub com 过去 5 年一直在博客平台上 我选择在自己的服务器上托管该网站 并通过 FTP 发布 我的服务器正在运行 ColdFusion 因此我决定利
  • 使用 python requests 模块登录网站

    我正在尝试使用 python 请求模块登录网页 我在使用 chrome 提交登录表单并重新检查该表单的代码时捕获了发布请求 下面的代码片段中提到了网站以及参数 根据某人的帖子 我能够创建一个尝试登录和访问受保护内容的 python 代码片段
  • Selenium 看不到 AngularJS 页面元素

    我在编写 Selenium 测试来检查我的应用程序时遇到问题 我想测试的是 当用户输入正确的登录名 密码时 会显示正确的页面并且用户已登录 主要问题是我的登录表单是作为 AngularJS 指令生成的 我有两个不同的登录页面 并且该指令在两
  • 使用间接的动态 Vlookup

    我在使用间接函数时遇到问题 这就是我正在寻找的内容 我正在尝试根据当前选项卡创建动态 vlookup VLOOKUP B3 NH BBC E 1 Z 188 MATCH Share Outstanding NH BBC E 1 Z 1 0
  • Typescript Promise 拒绝类型

    如何设置拒绝承诺的类型 假设我这样做 const start Promise
  • 带着色器的 HUD (opengl-es 2.0)

    如何在opengl es 2 0上使用着色器绘制HUD 我有一个在屏幕上绘制纹理四边形的着色器 它使用 MVP 矩阵 四边形有自己的顶点 独立于视图位置等 MVP 矩阵的原因 Matrix frustumM mProjMatrix 0 ra
  • imageView 在 Nexus 5 (Android 6.0) 中不显示

    我在RelativeLayout中有一个ImageView
  • 将一个范围分组到一个范围

    我有一张桌子 tblUnit ID Name PriceFrom PriceTo 1 Audi 170 340 2 BMW 250 290 3 Ford 275 500 4 Kia 110 250 5 VW 135 460 然后我预先定义了
  • 如何在 Lumen 中使用辅助函数?

    credentials app path 结果是 Symfony Component Debug Exception FatalThrowableError 调用 未定义函数 App LtClasses app path 但它在这里被列为助
  • 如何为使用 NPOI 创建的 Excel 中的单元格设置验证

    我使用以下命令创建了一个 excel 文件NPOI使用以下代码 var workbook new HSSFWorkbook var sheet workbook CreateSheet Candidate Add header labels
  • 声明内容提供商

    这是我第一次使用内容提供商 但我遵循了开发者文档 http developer android com guide topics providers content providers html但是当我运行该程序时它告诉我failed to
  • TypeScript 中的“const”关键字

    为什么 TypeScript 中类成员不能有 const 关键字 我在以下位置找不到任何有关它的有用信息TypeScript 文档网站 http www typescriptlang org Handbook classes 为什么 Typ
  • Oracle - 如何向用户授予对另一个用户的对象的权限

    我需要授予用户 TARGETUSER 选择 插入 更新用户 SOURCEUSER 的所有表的权限 我可以从here https stackoverflow com questions 187886 grant select on all t
  • 从超类调用方法

    你好 我试图通过子类从超类调用方法 但不断收到错误 我试图调用的方法是setDestination 但是编译器一直给我错误 找不到符号 方法 setDestination java lang string 我的讲师说这是方法调用的参数和方法
  • Android:微调器未显示所选值

    我有一个微调器和下拉列表 微调器的值是从 JSON 解析中获取的 我的问题是该值设置到微调器中 但是当我从下拉列表中选择一个值时 它不会在选定的微调器中显示 它总是空白的 我将微调器初始化为 final Spinner spinner Sp
  • 有没有办法使用 s3.putbucketreplication API 为 AWS S3 复制管理启用 ReplicationConfiguration?

    我正在尝试通过 s3 putbucketreplication api 启用复制配置 我正进入 状态 InvalidRequest 优先级不能用于此版本的跨区域复制配置架构 请参阅 S3 开发人员指南了解更多信息 错误 这是什么意思 var
  • 有进度的 Firebase 存储下载文件不会“实时”触发(Unity、C#)

    尝试从 firebase 存储下载文件 效果很好 但我的进度没有 实时 更新 当我调试 记录我的进度时 所有调试消息都会在下载完成时打印在控制台中 而不是在下载过程中打印 在工作中 我的互联网连接要好得多 看起来好像按预期工作 但在家里我有
  • 将亚马逊 MWS 暂存器查询转换为 API 调用

    我想知道是否有办法转换我的亚马逊 MWS便笺 https mws amazonservices co uk scratchpad index html对 API 调用的查询 例如使用 MWS 暂存器时 我会得到一个要签名的字符串 mws a