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

/**
			 * 识别设备终端,获取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.appVersion
			        window.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调取支付的方法,遇到坑,可参考。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值