0

在发现一些看起来很奇怪的问题后,我一直在网上寻找将贝宝整合到 Flash 中的方法,并希望其他人能理解为什么让这些工作如此痛苦

由于 xml 验证称为“错误的 xml 结构”,显示 Paypal 代码的动态文本文件似乎不起作用。尽管对此进行了整理并使其同时满足 Paypal 和 xml 的要求,但您似乎无法显示按钮或 xml 以超出错误:#1085。

如果没有第 3 方购物车,尝试让 Flash 加入到 addToCart 或引用您的购物车详细信息而不每次都进入贝宝页面似乎是不可能的,并尝试将他们的按钮生成器中的代码融合到 xml 数组中以实现与按钮相同的结果你自己的画廊是我似乎无法解决的另一个问题。

我想知道是否有某种方法可以从 flash 中触发 ExternalInterface 以承诺对 Paypal Button 代码进行操作,从而使 as3 和 Paypal 能够轻松同步。

我玩过Paypal minicart,这似乎是连接两者的好方法,但是因为我无法将Paypal 按钮代码放入Flash 中,使其行为方式与其代码要求的方式相同。

任何帮助我指向正确方向的帮助都会很棒,因为我相信很多人都在努力让这两者以这种方式工作。

  • (另外,考虑到 Paypal 和 Flash 已经存在了多久,很难理解为什么它们的按钮代码不能通过 xml 访问!)

修改示例

如果您通常尝试加载下面的代码(来自 Paypal 代码生成器)并将其包含在标准 info.xml 文件中以将其与典型的 html 设置一起使用,则会引发以下错误代码:

错误:#1085 这是 xml 标记不佳的症状,据我所知,结束标记尚未关闭,如果使用以下结尾“/>”进行更正,则无法在屏幕上显示。

我尝试更正标签并验证它以检查错误并仍然得到相同的结果,并使用多种方法将数据导入为 html、txt 等,但仍然没有乐趣。

贝宝代码

<![CDATA[<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="WHATEVER YOUR BUSINESS IS">
<input type="hidden" name="lc" value="GR">
<input type="hidden" name="item_name" value="Card - Birthday">
<input type="hidden" name="item_number" value="BC 01-00-01">
<input type="hidden" name="amount" value="3.25">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="button_subtype" value="products">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="cn" value="Add special instructions to the seller:">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="tax_rate" value="23.000">
<input type="hidden" name="shipping" value="1.75">
<input type="hidden" name="add" value="1">
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHosted">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_cart_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>]]>

我也尝试过不使用标签和原始代码,但它们都会抛出错误,或者无法显示数据。

我已经成功地分解了 AS3 变量,以将相同的效果传递给数组中的按钮上的贝宝,但这会导致打开一个浏览器,每个实例都将您带到贝宝,因为所需的结果是继续购物按钮代码,而不是每次都有 10 个窗口添加一个项目。

使用 Paypal 的 Minicart 可以获得相同的结果,并且可以在标准 html 中使用上面的代码正常工作,但在 AS3 中似乎失败了,并且 MiniCart 或类似的购物车也无法识别。

包含按钮代码并在 xml 中显示自定义或 Paypal 按钮的选项似乎很简单,我不敢相信它没有在任何地方完成,如果是这样,在任何地方都找不到提及或示例来参考。

如果可能的话,我的想法是提供一个 ExternalInterface,从外部源、Javascript 或(如果可能的话)调用代码来访问/模拟相同的效果或能够直接从 Flash 传递相同的信息。

我知道 xml 还依赖于其他因素,例如 'utf-8' 标记和 AS3 中明显严格的错误管理,但是管理导入本质上是简单按钮代码的内容似乎非常困难。

任何反馈将是一种祝福,

谢谢,

西蒙

修改后的代码 - 一半工作

function onBtnClick(e:Event):void  {
//Setup the data.
var req:URLRequest = new URLRequest("https://www.paypal.com/cgi-bin/webscr");
var reqVars:URLVariables = new URLVariables();
reqVars.cmd = "_cart";
reqVars.business = "7BRY3X5XVSZ9Y";
reqVars.lc = "GR";
reqVars.item_name = "Card - Birthday";
reqVars.item_number = "BC 01-00-01";
reqVars.amount = "3.25";
reqVars.currency_code = "BC 01-00-01";
reqVars.button_subtype = "products";
reqVars.no_note = "0";
reqVars.cn = "Add special instructions to the seller:";
reqVars.no_shipping = "2";
reqVars.tax_rate = "23.000";
reqVars.shipping = "1.75";
reqVars.add = "1";
reqVars.bn = "PP-ShopCartBF:btn_cart_LG.gif:NonHosted";

//and so on

req.data = reqVars;
sendToURL(req);
trace(reqVars);
}

它现在在我查看购物车时在 Paypal 上注册,但是 Paypal Minicart 错过了它,所以可能是有问题的发送方法,这两种方法之间是一种有效的方法,我只需要用其他项目测试它以确保它们全部注册。

很近!

4

1 回答 1

0

好的,所以我想我已经正确理解了您的问题。而且我会说,不是为了发布一些数据而导入大量数据并不是真正必要的。相反,我会做类似下面的事情。但请记住,我没有使用 paypal 的经验,所以我的解决方案可能并不可取。

所以这是我的代码:

private function init(e:Event = null):void 
{
removeEventListener(Event.ADDED_TO_STAGE, init);
btn = new Sprite();
btn.graphics.beginFill(0x000000);
btn.graphics.drawRect(50, 50, 100, 50);
btn.graphics.endFill();
btn.addEventListener(MouseEvent.CLICK, onBtnClick);

addChild(btn);
}

private function onBtnClick(e:Event):void 
{
//Setup the data.
var req:URLRequest = new URLRequest("http://www.acme.com");
var reqVars:URLVariables = new URLVariables();
reqVars.cmd = "_cart";
reqVars.business = "WHATEVER YOUR BUSINESS IS";
reqVars.lc = "GR";
//and so on
req.data = reqVars;
req.method = URLRequestMethod.POST;

var loader:URLLoader = new URLLoader();
loader.load(req); //Send the post data.
trace("fooo");
}

此代码将 POST 一条消息到相关的url. 我希望这有帮助。

于 2012-09-18T19:24:03.177 回答