• FB接口之 js调用支付窗口


    官方文档: https://developers.facebook.com/docs/reference/dialogs/pay/

    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:fb="https://www.facebook.com/2008/fbml">
      <head>
        <title>Facebook Credits Demo</title>
      </head>
      <body>
        <h2>Buy something...</h2>
        <button onclick="buy()">Buy</button>
        <div id="fb-ui-return-data"></div>
        <div id="fb-root"></div>
    
        <script src="http://connect.facebook.net/en_US/all.js"></script>
        <script> 
          FB.init({appId: "YOUR_APP_ID", status: true, cookie: true});    // 这里初始化FB的接口,接入你的应用
    
          // The dialog only opens if you've implemented the
          // Credits Callback payments_get_items.
          function buy() {
            var obj = {
              method: 'pay',          // FB.UI调用的弹窗类型。这里定义为支付弹窗
              action: 'buy_item',       // 支付的动作。其他为 buy_item(买商品)buy_credits(买平台币)earn_credits(赚取平台币)earn_currency.
              // You can pass any string, but your payments_get_items must
              // be able to process and respond to this data.
              order_info: {'item_id': '1a'},  // 买商品的话是商品的信息
              dev_purchase_params: {'oscif': true}  // 这里不太清楚,好像是商品的价格是否用当地的货币价显示
            };
    
            FB.ui(obj, js_callback);    // FB的UI调用,obj为参数,js_callback为回调函数
          }
    
          // This JavaScript callback handles FB.ui's return data and differs
          // from the Credits Callbacks.
          var js_callback = function(data) {
            if (data['order_id']) {      // 当订单成功的时候,会返回商品在FB平台的商品id
              // Facebook only returns an order_id if you've implemented
              // the Credits Callback payments_status_update and settled
              // the user's placed order.
    
              // Notify the user that the purchased item has been delivered
              // without a complete reload of the game.
              write_callback_data(
                        "<br><b>Transaction Completed!</b> </br></br>"
                        + "Data returned from Facebook: </br>"
                        + "Order ID: " + data['order_id'] + "</br>"
                        + "Status: " + data['status']);
            } else if (data['error_code']) {    // 出现某X非支付成功操作的时候,例如:点击支付窗口的取消按钮
              // Appropriately alert the user.
              write_callback_data(
                        "<br><b>Transaction Failed!</b> </br></br>"
                        + "Error message returned from Facebook:</br>"
                        + data['error_code'] + " - "
                        + data['error_message']);
            } else {            // 其他未知名错误
              // Appropriately alert the user.
              write_callback_data("<br><b>Transaction failed!</b>");
            }
          };
    
          function write_callback_data(str) {
            document.getElementById('fb-ui-return-data').innerHTML=str;
          }
        </script>
      </body>
    </html>
  • 相关阅读:
    oracle“记录被另一个用户锁住”
    Oracle CASE WHEN 用法介绍
    拥有机器人的人生会是怎样的体验?
    需求那么多,核心需求都从哪里来?
    一文读懂互联网及电商逻辑
    读书:《敏捷产品--不确定性的思维革命》
    读书:《超越感觉:批判性思考指南》一
    618啦,你的钱包又被盯上啦!
    产品经理如何开启上帝视角?
    我的产品经理价值观
  • 原文地址:https://www.cnblogs.com/zjfazc/p/3215205.html
Copyright © 2020-2023  润新知