2012-09-18 55 views
0

我一直在網上搜索發現一些問題,只是顯得有些怪異後,發現整合貝寶成閃光的方式,並希望其他人可能會理解爲什麼讓這些工作是如此的痛苦貝寶/閃存按鈕集成AS3問題

動態顯示PayPal代碼的文本文件似乎不起作用,因爲xml驗證指的是「bad xml structure」。儘管整理了這一點,並使其滿足Paypal和XML的要求,但似乎無法讓按鈕顯示或xml超出錯誤:#1085。

試圖讓Flash無需第三方購物車就可以在不使用PayPal頁面的情況下添加或引用您的購物車詳細信息,並嘗試將其按鈕生成器中的代碼融合到xml數組中以實現相同的結果因爲你自己畫廊的按鈕是另一個我無法想象的問題。

我想知道是否有閃光燈的ExternalInterface觸發付款按鈕代碼,使as3和Paypal輕鬆同步。

我已經玩了一個Paypal迷你遊戲,這似乎是一個很好的方式來彌合這兩者,但因爲我無法將PayPal按鈕代碼放入Flash中,因此它的行爲與代碼所需的方式相同。

任何幫助指引我朝着正確的方向將是巨大的,因爲我確信許多人都在試圖讓這兩個人以這種方式工作掙扎。

  • (此外,考慮Paypal和閃存多久已經出現,這是很難理解爲什麼他們的按鈕代碼無法通過XML訪問!)

Ammended例子

如果您通常嘗試加載下面的代碼(如從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個窗口添加項目。

使用貝寶的Minicart可以得到相同的結果,並且可以在標準html中使用上面的代碼,但是在AS3中失敗了,所以看起來並沒有被MiniCart或類似的購物車識別。

包括按鈕的代碼,並顯示在XML或者定製或貝寶按鈕選項看起來很簡單,我不能相信這不是任何地方進行,如果這樣找不到提及或實例的任何地方引用。

我的想法是如果可能的話,提供一個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上,當我查看購物車然而,貝寶Minicart錯過了,所以也許這是兩種方法之間的發送方法是一個有效的工具,我只需要用其他項目進行測試,以確保它們全部註冊。

太近了!

+0

當您不提供任何代碼時,將很難爲您提供幫助。 –

+0

@DanielFigueroa,只是增加了,我需要嘗試和修改標記給它一個最後一次嘗試之前,我有過它崩潰... 任何建議歡迎! – esadude

回答

0

好的,所以我想我已經正確地理解了你的問題。而且我會說,不是爲了POST而導入大量數據,而是一些數據並不是真正必要的。相反,我會去下面的東西。但請記住,我沒有貝寶的經驗,所以我的解決方案可能不是明智的。

因此,這裏是我的代碼:

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"); 
} 

此代碼將發佈一條消息給相關url。我希望這有幫助。

+0

謝謝丹尼爾,明天再試試,第一件事就回復給你。 看來plausable並在實踐中正在發生的事情與PayPal標準AS3按鈕鏈接回事相似,但希望更容易。 我希望解決的問題是它由Minicart捕獲並表現爲PayPal按鈕代碼通過啓動所需的字段,而用戶引導到另一個貝寶購物車在運輸過程中呢! 無論哪種方式,我覺得它的東西,更多的人將作爲貝寶受益,電子商務和AS3似乎是仍然是分離的,儘管需要對方。 – esadude

+0

嗨@丹尼爾,慢慢到達那裏。我試過了代碼,看不到任何事情發生,但跟蹤工作,然後我添加了所有的貝寶按鈕提供的變量,以防萬一,仍然沒有。然後我用這個代替代碼的結尾: [req.data = reqVars; sendToURL(req); trace(reqVars); ] 一半的作品,一個臨時修復現在,而是在正確的軌道。如果我之後查看購物車,它現在會記錄每次按下,但是小型購物車仍然不會識別它正在被觸發。 不確定爲什麼它在技術上與pp按鈕代碼相同。 – esadude

+0

那麼你應該做的就是聆聽由URLLoader觸發的事件,因爲那將會得到返回的信息。我很抱歉,但我不知道如何幫助你,因爲我沒有任何貝寶和迷你卡的經驗。 –