Skip to content
This repository has been archived by the owner on Mar 19, 2021. It is now read-only.

Latest commit

 

History

History
69 lines (56 loc) · 3.58 KB

File metadata and controls

69 lines (56 loc) · 3.58 KB

#.canvas.pay(info, callback)

使用Facebook支付进行一次支付。这个方法封装Facebook JS SDK中的FB.ui({method: "pay", action: "purchaseitem", ...),你可以在这里找到更多详细内容Pay Dialog

##参数

plugin.FacebookAgent.prototype.canvas.pay = function(info, callback){}
Name Type Required Description
info object Yes 包含支付内容的对象。
callback Function No 参数是一个结果码和一个JSON对象的回调函数。

###info对象的属性:

Name Type Required Description
product URL Yes og:product对象的url,用户将要购买的商品。具体内容阅读这篇文档如果创建一个购买商品How-to: Local Currency Payments - Defining Products, 商品的参考手册Product Object
quantity int No 用户想要购买商品的数量,通常在实现虚拟货币购买的时候使用。
quantity_min int No 用户可以购买的商品的最小数量。这个参数对于提高交易效率很重要。 price jumping
quantity_max int No 用户可以购买的商品的最大数量。这个参数对于提高交易效率很重要。 price jumping
request_id String No 开发者定义的交易的唯一标识符,会附带在支付的Graph API。 Learn more
pricepoint_id String No 方便使用手机的购买者直接使用手机支付。 Optimizing for Mobile Payments
test_currency String No 这个参数可以在调试和测试时使用,用来强制使用一种指定的货币,而不是用户通常使用的。这可以使你快速搭建支付的原型,无需重复的改变你个人的偏好设置。为了减少安全风险,这个参数只有应用的管理员,开发者和测试者可以使用。使用你希望的货币的3字符编码,支持的货币编码在这里

###回调函数

var callback = function (code, response) {}

如果支付成功,code等于plugin.FacebookAgent.CODE_SUCCEEDresponse是一个包含支付信息的JSON对象。

{
  "payment_id": 848929916459082,
  "quantity": "2",
  "status": "completed", 
  "signed_request": "7QYHzKqKByA7fjiqJUh2bxFvEdqdvn0n_y1zYiyN6tg.eyJhbGCJxdWFudGl0eSI6IjEiLCJzdGF0dXMiOiJjb21wbGV0ZWQifQ"
}

如果支付失败,code是一个错误码,response是一个包含错误信息的JSON对象。

{
    "error_message": "Unkown error"
}

##示例

var info = {
    product: 'https://www.cocos2d-x.org/demo/facebooktest/pay/item1.html'
};

var facebook = plugin.FacebookAgent.getInstance();
facebook.canvas.pay(info, function(code, response){
    if (code == plugin.FacebookAgent.CODE_SUCCEED){
        if (response['status'] === 'completed')
            cc.log("Payment succeeded: " + response['amount'] + response['currency']);
        else 
            cc.log("Payment failed: " + response['status'])
    } else {
        cc.log("Request send failed, error #" + code + ": " + response);
    }
});