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字段使用"=",而改用"#"代替 第一部分:应用唯一id:appid, 填 QQ钱包业务侧分配的appid; 第二部分:商户号:bargainor_id 第三部分:渠道:channel 目前分配值为:wallet ______________________________________________________
支付成功/失败的回调 @param {Function} callback (result,resultCode) {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 |