/*** 识别设备终端,获取app相关信息*/window.terminal = (function () {var u = navigator.userAgent;//app = navigator.appVersion;return {//浏览器版本信息trident: u.indexOf('Trident') > -1,presto: u.indexOf('Presto') > -1,webKit: u.indexOf('AppleWebKit') > -1,gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') > -1,mobile: !!u.match(/AppleWebKit.*Mobile.*/),ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,iPhone: u.indexOf('iPhone') > -1,iPad: u.indexOf('iPad') > -1,webApp: u.indexOf('Safari') > -1,weixin: u.indexOf('MicroMessenger') > -1 && u.replace(/.*(MicroMessenger\/[^\s]*).*/, "$1").replace("MicroMessenger/", "") || false,appVersion: u.indexOf('bocapp(') > -1 ? u.match(/bocapp\(\S+\)/)[0].slice(7, -1) : '3.0.0'};})()// *//  * APP版本号比较方法//  * @param (String) version1 版本号1,当前版本号//  * @param (String) version2 版本号2,要求最低版本号//  * @returns {Number} 判断版本号1是否高于版本号2,高于为1,等于为0,低于为-1// APP当前版本号获取方法:window.terminal.appVersionwindow.versionCompare = function (version1, version2) {var v1 = version1.split('.');var v2 = version2.split('.');for (var i = 0; i < v1.length; i++) {if (v1[i] * 1 > v2[i] * 1) {return 1;  // 当前版本号大于要求最低版本号} else if (v1[i] * 1 < v2[i] * 1) {return -1; // 当前版本号小于要求最低版本号}}return 0; // 当前版本号等于要求最低版本号}/*** 引入cordova*/var script = document.createElement('script')var pth = "https://ebsnew.boc.cn/bocphone/BocMerchant/" // 生产环境// 外网环境直接引用生产地址即可,若需新增cordova方法,另行提供DMZ区地址if (window.terminal.iPhone) {script.src = pth + 'paylib/ios.js'} else if (window.terminal.android) {script.src = pth + 'paylib/android.js'} else {alert('无法识别终端类型')}document.getElementsByTagName('head')[0].appendChild(script)

调取代码

         //调起APP支付 res数据为后端返回document.addEventListener('deviceready', function () {var setting = {// 下述数据仅为示例,实际数据上送格式请参考cordova接口文档的描述merchantNo: res.data.pay_info.merchantNo, // 商户号version: res.data.pay_info.version, // 版本号messageId: res.data.pay_info.messageId, // 交易码security: res.data.pay_info.security, // 签名方法message: res.data.pay_info.message, // 请求报文明文信息signature: res.data.pay_info.signature, // 请求报文签名信息custBackFlag: "1"};window.c_plugins.merchantBridge.callPaymentControl(function (data) {// 下述内容为点击左上角<后执行if (data.isCancelPay === "1") {// 客户取消了支付payclose();paycloseAjax(res.data.order_num)// cancelPay(res.order_id); }  else if(data.orderStatus === "1") {// 支付成功的回调方法,可写返回后逻辑paysuccess()         } else {// 客户支付失败payerror()paycloseAjax(res.data.order_num)// 支付失败的回调方法 ,可写返回后逻辑}    },function (err) {console.log('网络错误')}, setting)});

以上就是中国银行app调取支付的方法,遇到坑,可参考。

中国银行app,H5页面调取支付,并返回状态码。相关推荐

  1. 微信支付总结--小程序与H5页面微信支付

    项目开发过程中,涉及到了微信支付功能,这里做一个详细的记录. 小程序和H5的后端代码是通用的,前端调用不同的代码实现,这里不是重点,会简单的给出相关的代码. 微信支付,官方给了开发文档,但是其中还是有 ...

  2. 页面HTTP状态查询“返回状态码:200 ”是什么意思?(网页响应状态码)

    200是响应正常的意思,这个是服务器返回页面的响应头信息.里面bai的Transfer-Encoding: chunked,意思是使用了提前不可知数据长度的传输方式,需要浏览器继续读取响应,接下来才知 ...

  3. java 返回js_如何基于java或js获取URL返回状态码

    这篇文章主要介绍了如何基于java或js获取URL返回状态码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参fgLAeaGAH考下 描述:使用java或者 ...

  4. CEF3:https 请求返回状态码canceled

    CEF3:https 请求返回状态码canceled 客户端项目中浏览器内核用的cef3,最近在测试的时候 服务器配置的为https但是使用IP访问的.像如果 https服务器并没有完全安装正规的配置 ...

  5. ajax判断成功状态码,Ajax返回状态码200,成功函数不触发(Ajax returns status code 200, success function not triggering)...

    Ajax返回状态码200,成功函数不触发(Ajax returns status code 200, success function not triggering) 关于这一点有很多话题,但没有一个 ...

  6. python-网页请求返回状态码429

    在做读取本地cookies免登陆直接留言时,代码没有报错,但返回状态码为429,返回结果为:<Response [429]> 表示在短时间内,用户发送了太多的请求,超出了"频次限 ...

  7. 常见服务器返回状态码

    常见服务器返回状态码 输入网址后会发生什么 1. 200 服务器正确处理请求,并将请求的资源放在响应体中返回给客户. 2. 204 若服务器拒绝对PUT.POST或者DELETE请求返回任何状态信息或 ...

  8. nginx 返回状态码详解

    nginx 返回状态码详解 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201 (已创建) 请求成功并且服务器创建了新的资源. 202 (已接受) 服务器已接受请 ...

  9. 打开网站服务器显示403,网站服务器返回状态码403解决办法

    网站服务器返回状态码403解决办法 [2020-09-05 06:10:52]  简介: HTTP状态码大全 2020-08-27 建站服务器 200 – 服务器成功返回网页 404 – 请求的网页不 ...

  10. HTTP请求返回状态码意义(详)

    所有HTTP请求返回状态码意义 100 Continue 继续.客户端应继续其请求 101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只能切换到更高级的协议,例 ...

最新文章

  1. 有赞分层自动化测试实践
  2. Science:细菌和古菌多重抗性系统抵御噬菌体和外来质粒
  3. python爬虫---从零开始(一)初识爬虫
  4. Apache Kafka-生产消费基础篇
  5. html数字变换插件,轻量级jquery数字动画插件
  6. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(一)
  7. 公司上网速度极慢(断网)解决思路_网络TS
  8. 《Java技术》第八次作业
  9. 《scikit-learn》决策树之回归树
  10. 卡尔曼滤波推导思路总结
  11. 关于中职计算机专业,关于中职学校计算机专业改革探讨
  12. 【课程总结】软件工程经济学简答题总结
  13. [计算机数值分析]拉格朗日插值公式
  14. Ubuntu18 Cuda10升级Cuda11+Cudnn8+TensorRT7.1+Opencv3
  15. 宏电7710与组态王通信配置
  16. vue xlsx.js获取单元格数据类型的hooks 单元格类型处理
  17. 诊断皮肤癌,人工智能比医生更出色
  18. UVa 10603 - Fille
  19. Linux 块设备层中的Multi-queue分析
  20. 高性能无线综合测试仪 无线电综合测试仪 ---TFN PM5100 100KHz-1GHz

热门文章

  1. python开源项目及示例代码(转)
  2. Web 前端学习之表单制作、网页超链接
  3. Windows调试工具入门-3-WinDbg内核调试配置
  4. matlab 读取.pgm,【数字图像处理】pbm/pgm/ppm图片的读写(Matlab)
  5. js 入门基础(一)
  6. 【架构设计】简单设计原则(Kent Beck)
  7. [动态规划-0] 前言-我的动态规划学习之路
  8. 汤普森算法_什么是汤普森采样(Thompson sampling)?
  9. php a标签加nofollow,Z-Blog给文章所有的站外a链接添加nofollow的方法
  10. Vulkan同步机制和图形-计算-图形转换的风险(一)