如何使用swf支付

How to use swf vpaid?

本文关键字:支付 swf 何使用      更新时间:2023-09-26

VPAID可能是js或swf。

如果我有js,那么一切都很简单,我只要做:

var script = document.createElement('script');
script.onload = onLoad;
script.src = "https://somedomain.net/vpaid.js";
document.getElementsByTagName('head')[0].appendChild(script);

当JS文件被加载时onLoad被调用。

function onLoad() {
    var adUnit = getVPAIDAd();
}

现在我有一个adUnit它有一些API:

adUnit.initAd
adUnit.handshakeVersion
...

和另一个方法来控制广告。

但是如果我有swf,那么我不知道该怎么做。

有URL:

https://somedomain.net/vpaid.swf

我可以使用swfobject创建对象:

swfobject.embedSWF(
    "https://somedomain.net/vpaid.swf",
    "myContent", "640", "480", "9.0.0"
);

但是我不知道怎样才能得到AdUnit。我想从这个swf中获取AdUnit我想让这个AdUnit具有相同的API:

adUnit.initAd
adUnit.handshakeVersion
...

但是我不知道怎么做

你需要实现你自己的AS3/Flash播放器。

播放器将通过flash.external.ExternalInterface接收VPAID资源url,或者您将整个解析过的VAST交给flash播放器(我更喜欢)。

AS3示例:

/**
 * Setup listeners
 */
private function setup():void {
    ExternalInterface.addCallback("player_load", load);
    ExternalInterface.addCallback("player_exec", execute);
}
/**
 * Hand over VAST
 */       
private function load(data:*):void {
    try {
        var result:* = _internalPlayer.load(new VAST(data.vast));
        callExternal(data.callback, result);
    } catch(e.*) {
        callExternal(data.callback, e);
    }
}
/**
 * Implement something to control the player from JS via ExternalInterface
 */
private function execute(data:*):* {
    try {
        var result:* = new Command(data.command).execute();
        callExternal(data.callback, result);
    } catch(e.*) {
        callExternal(data.callback, e);
    }
}
private function callExternal(target:String, args:*):void {
    if(ExternalInterface.available)
        ExternalInterface.call(target, args);
    else
        trace('ExternalInterface unavailable');
}

JS示例:

embedded_swf['player_load']({
    'vast': vast, // parsed VAST
    'callback': 'window.player.events.backchannel' // some available method to send success/error messages to
});
[...]
embedded_swf['player_exec']({
    'command': {
        'command': 'play',
        'target': 'ad.id.1' // some identifier flash-player can work with
    },
    'callback': 'window.player.events.backchannel'
});

当然,这只是一个例子,你可以怎么做,只是一小部分要做的事情。但我希望它能有所帮助。

祝你今天愉快。