0

みんな、私たちは FB クレジット トランザクションを介して支払いを受け取るゲームを開発しています。私たちが直面している問題は、'pay' メソッドの FB.ui が表示されると、「エラーが発生しました」というメッセージです。全体をデバッグしようとしましたが、何が原因であるかを突き止めるのにすでに時間がかかっています。私はすでにこれを修正することに本当に必死です!助けてください!

私はテスト用の FB アプリを作成しました。完全にすべてが削除されていますが、支払いを開始するために最も必要なものが残っています。ここからアクセスできます:

http://apps.facebook.com/paymentproblemapp

これは、FB JS API 初期化コードの一部でもあります。これは、アプリ内のスクリプトfbapps-testapp-facebook-1.0.js にもあります。

初期化関数

init : function() {

  window.fbAsyncInit = function() {
    FB.init({
      appId : window.APP_ID,
      status : true,
      cookie : true,
      oauth : true,
      channelUrl : window.MASTER_URL + "channel",
      frictionlessRequests : true
    });
  };

  (function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    d.getElementsByTagName('head')[0].appendChild(js);
  }(document));

},

そして支払い機能:

// order_info to be constructed in swf
placeOrder : function(order_info, swfOrderCallback) {
  var onOrderPlaced = function(data) {
    if (swfOrderCallback) {
      // further actions within the swf due to payment

      if (data['order_id']) {
        // TODO successful payment
        return true;
      } else {
        // handle errors here
        return false;
      }
    }
  };

  // calling the payment dialog
  try {
    FB.ui({
      method : 'pay',
      order_info : order_info,
      purchase_type : 'item',
      dev_purchase_params : {
        'oscif' : false
      }
    }, onOrderPlaced);
  } catch (err) {
    // TODO handle payment error
  }
}

どんな助けでも大歓迎です!ありがとうございました!

4

1 に答える 1

0

FB.init() の後に placeOrder() を呼び出すようにしてください。

于 2012-05-08T12:45:49.393 に答える