开发文档

JSAPI调用

操作流程描述

1、用户在手机QQ中点击内嵌HTML5页面下单;
2、内嵌HTML5页面通过商户后台调用初始化请求接口获取到token_id;
3、把token_id跟其他参数一起,调用mqq.tenpay.pay 支付jsapi,即可唤起手机QQ的支付模块;
4、支付成功之后会调用mqq.tenpay.pay中传入的callback函数进行回调;


支付请求接口

使用前提(特别重要)

1、商户首先需登录QQ钱包商户平台(https://qpay.qq.com/),在“账户管理-开发配置项-公众号支付”一栏添加域名,进行备案。域名审核通过后,才能正常调用QQ支付。



2、若要使用jsapi需要在页面中引入如下的js文件即可:

http:<scriptsrc="http://open.mobile.qq.com/sdk/qqapi.js?_bid=152"></script>

https:<scriptsrc="https://open.mobile.qq.com/sdk/qqapi.js?_bid=152"></script>

注意:qqapi不支持iframe内使用,如果需要在 iframe 中使用,同域的可以使用 top.mqq 调用,非同域的请用 postMessage 转发

 

支付使用到的jsapi:

所有的jsapi都是mqq的属性、方法或者子对象

method

details

Version

version

属性, mqqapi自身的版本号

>=v4.2

iOS

属性,如果在 iOS QQ中,值为true,否则为false

>=v4.2

android

属性,如果在 android QQ中,值为true,否则为false

>=v4.2

QQVersion

属性,如果在 手机QQ中,值为手机QQ的版本号,如: 4.6.2,否则为 0

>=v4.2

isMobileQQ

检测页面是否在手机QQ

@param {Function} callback (result)

{Boolean} result

>=v4.2

pay

唤起财付通支付界面

@param {Object} params

{String} tokenId 调用QQ钱包支付下单接口生成的订单号prepay_id(必选字段)

{String} pubAcc 公众账号uin,用于在支付成功后关注该公众号(可选字段)Add in 4.7.0

{String} pubAccHint公众账好关注提示语,用于显示在支付成功页面(可选字段)Add in 4.7.0

{String} appInfo标记业务及渠道

注意:字段由三部分组成(三个字段均是选填字段,可空):

appid#XXXXXXXXX|bargainor_id#XXXXXXXX|channel#XXXXX

注:由于url字段包含"=",所以不在appInfo字段使用"=",而改用"#"代替

第一部分:应用唯一idappid,  QQ钱包业务侧分配的appid

第二部分:商户号:bargainor_id

第三部分:渠道:channel 目前分配值为:wallet

 ______________________________________________________


支付成功/失败的回调

@param {Function} callback (resultresultCode)

{Object} result

{Number} resultCode 0表示成功。非0表示失败

{String} retmsg 表示失败调用结果信息字符串。成功返回时为空串。出错时,返回出错信息

{Object} data resultCode=0时,有返回data对象

transaction_id 财付通交易单号

pay_time 交易时间

total_fee 订单总金额(单位为分)

callback_url商户提供的回调url地址(HTML5方式调用适用,其他情形为空)

sp_data 返回给商户的信息,商户前端可解析校验订单支付结果。

{Number} resultCode 错误码

注意: 如果这个参数取不到,请使用result参数里面的resultCode

可选值:

-1: 未知错误

0: 发货成功

1: 下订单失败

2: 支付失败

3: 发货失败

4: 网络错误

5: 登录失败或无效

6: 用户取消

7: 用户关闭IAP支付

  ______________________________________________________

示例:

mqq.tenpay.pay({

tokenId: "xxxx",

pubAcc: "xxxx",

pubAccHint: "xxxx",

appInfo: "appid#XXXXXXXXX|bargainor_id#XXXXXXXX|channel#wallet"

}, function(result, resultCode){ ...});

 

>=v4.6.1