移动端微信支付和支付宝支付

说明:

此项目是h5+app项目,不是此项目,请勿参考

context是this

curPayType是支付的方式

ordercode当前订单号

1    Alipay(curPayType,ordercode){2     if(curPayType){//微信支付
 3       context.$fetch.post(‘url‘,{ordercode}).then((res)=>{//url为请求微信支付的接口
 4         console.log(‘微信支付‘,res.data)
 5         var self = plus.webview.currentWebview();//5-9行作用,打开一个新的窗口,在设置一下安全域名,不然会报商家存在未配置的参数。。。。
 6           var payView = plus.webview.create(res.data.url, ‘wxpay‘, { //打开一个新的窗口,res.data.url是后端返回的支付链接
 7           top: ‘1000px‘,bottom: ‘1000px‘,
 8           additionalHttpHeaders:{referer:‘https://pay.52dd.cn‘}//设置安全域名
 9         });      //由于没有支付成功的回调,所以以下内容是进行查询用户是否支付成功
10         context.$vux.confirm.show({//10-33行是vux UI框架的cofirm弹框,详情参考官网文档 https://doc.vux.li/zh-CN/components/confirm.html
11           title: ‘消息提示‘,//11-14行是这种弹框的显示内容
12           content: ‘如果你已完成,请点击“已完成付款”‘,
13           confirmText:‘已完成付款‘,
14           cancelText:‘继续支付‘,
15           onCancel : () => { //点击了继续支付
16             context.Alipay(‘1‘)
17           },
18           onConfirm : () => { //点击了已完成支付,发送请求查询当前订单号是否已经付款
19             context.$fetch.post(‘url‘,{ordercode}).then((res)=>{//此url是查询用户是否付款成功的接口
20               if(res.data.orders_pay_status == 2){//支付成功
21                 context.$router.push(‘editUserInfo‘)//跳转页面
22               }else if(res.data.orders_pay_status == 1){//待支付
23                 context.$vux.confirm.show({//vux UI框架的弹窗
24                   title: ‘消息提示‘,
25                   content: ‘支付失败‘,
26                   // 组件除show外的属性
27                   onCancel : () => {},
28                   onConfirm : () => {}
29                 })
30               }
31             })
32           }
33         })
34       });
35     }else{//支付宝
36       context.$fetch.post(‘url‘,{ordercode:context.ordercode}).then((res)=>{//url为请求支付宝支付的接口      1、我这点的这个支付宝接口,默认是返回的一个表单,而且有等待用户确认支付的页面,而且支付成功后自己跳转到了其他产品的页面去了,这并不是我想要的,我想自己跳转页面。      2、37和39处的url是同一个             orderhome页面出来的逻辑就是拿到我存的那个表单,把他用v-html渲染在页面上,然后把提交就ok了,我的表单是这么触发的,需要包一个定时触发函数,每个人开发的不一样,更具你自己的情况来,如下
        window.document.forms[‘alipaysubmit‘].submit();
37      let url = window.location.origin + ‘/#/orderhome‘//这个页面是用来打开后端返回的form表单,要将这个表单在这个页面提交,不能在当前页面提交,否则会自己挑到其他产品的页面,我这个情况是后端不给我写接口了,就让我用以前的 38 var self = plus.webview.currentWebview(); 39 var payView = plus.webview.create(url, ‘alipay‘, {//plus.webview.create就是打开一个新的页面,把上面的url拿过来,在下面保存了后端返回的form表单,在这个打开的页面进行提交, 40 top: ‘1000px‘,bottom: ‘1000px‘, //把top和buttom设置成0px能看见页面 41 additionalHttpHeaders:{referer:‘https://pay.52dd.cn‘}//设置安全域名 42  }); 43  self.append(payView);      //45-46行下面内容是将后端返回的form表单存储起来45         let str = JSON.stringify(res)
46         window.localStorage.setItem(‘from‘,res)      //由于后端返回的那个表单提交后会自己打开一个让用户确认是否支付的界面,在上面的orderhome中被打开,而那个页面我们把他隐藏了,用户是看不见的,现在让用户看我我们自己写的
47         context.$vux.confirm.show({
48           title: ‘消息提示‘,
49           content: ‘如果你已完成,请点击“已完成付款”‘,
50           confirmText:‘已完成付款‘,
51           cancelText:‘继续支付‘,
52           onCancel : () => {
53             context.Alipay()
54           },
55           onConfirm : () => {
56             context.$fetch.post(‘url‘,{ordercode:context.ordercode}).then((res)=>{//此url是查询是否支付成功的接口
57               if(res.data.orders_pay_status == 2){
58                 context.$router.push(‘editUserInfo‘)
59               }else if(res.data.orders_pay_status == 1){
60                 context.$vux.confirm.show({
61                   title: ‘消息提示‘,
62                   content: ‘支付失败‘,
63                   // 组件除show外的属性
64                   onCancel : () => {},
65                   onConfirm : () => {}
66                 })
67               }
68             })
69           }
70         })
75       });
76     }
77 }

  

原文地址:https://www.cnblogs.com/tlfe/p/11387399.html

时间: 2024-11-04 03:21:45

移动端微信支付和支付宝支付的相关文章

微信支付,支付宝支付,银联支付——三大支付总结

转载:  https://juejin.im/post/596d97576fb9a06bb874a812 银联支付,支付宝支付,微信支付的三大总结,之前也有写过两篇. 微信支付,支付宝支付,银联支付--三大支付总结: http://blog.csdn.net/androidstarjack/article/details/72669394 支付宝植入总结: android 支付宝的植入 <曾经踩过的坑> 微信支付总结: Android 微信支付总结 备注:出于安全考虑,验签我们都是放到后台进行

腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的

草原上的两匹马! 打从当年微信开始布局公众号之初时,估计就已经想到了与支付宝正面冲突的场面,所以微信先来个瞒天过海,在春晚搞了个微信红包,那叫一个火呀,此时的云云隐隐感觉到些许不安. 早期的微信开发者可能都知道,微信公众号刚开始的时候接入支付要交巨额的保证金,根据行业不同,金额也不同,但也有大几万呢.这让很大一部分微型企业望而却步(老子创业时,注册公司的注册资金都免了,用个支付,你还要保证金),所以,大家果断用支付宝. 这样一来,腾哥的如意算盘算是打到自己脚面了,本打算可以用企业交的保证金拿去做

***单文件搞定微信支付和支付宝支付

这段时间做微信支付和支付宝支付集成,发现了一个不错的开源代码 简单快捷,单文件即可搞定微信支付和支付宝支付. 单文件搞定微信支付系列: https://github.com/dedemao/weixinPay weixinPay 一个PHP文件搞定微信支付系列 网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入微信支付的带来些许帮助和借鉴意义. 一个PHP文件搞定支付宝系列请移步:https://github.com/d

iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)

资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一.支付宝 1.1 请阅读支付宝文档和Demo 1.2 导入对应的库 将支付宝Demo中得这些东西全拷贝过来 1 2 3 4 5 localhost:alipay mac$ ls APAuthV2Info.h        Order.h            libssl.a APAuthV2Info

iOS-集成微信支付和支付宝支付

微信支付--http://www.cnblogs.com/goodboy-heyang/p/5255818.html 支付宝支付:http://www.cnblogs.com/goodboy-heyang/p/5366375.html

如何在微信中接入支付宝支付

前提:需要一台nginx服务器做反向代理 前言:支付宝支付手机支付一共分4个页面分别为1.输入手机号页面,2.输入验证码页面,3.输入支付密码页面,4.支付结果页面 1.配置nginx服务器为 https://mclient.alipay.com做反向代理,对app和支付宝做反向代理如下,要求支付宝的反向代理后的域名与app的域名为同域. server { listen 80; server_name app.domin.com; access_log /var/website/app/logs

PHP后台支付的开发:微信支付和支付宝支付

关于支付的流程之类的就不做解释,大家可以自行搜索! 微信支付 项目前提:本人用的是tp框架,PHP语言下载到微信平台提供的微信支付接口文件,放在了tp第三方类库vendor,命名为WxpayAPI, WxpayAPI/lib/WxPay.Api.php 接口访问类; WxpayAPI/lib/WxPay.Config.php 配置账号信息; WxpayAPI/lib/WxPay.Data.php 数据对象基础类; WxpayAPI/lib/WxPay.Exception.php 微信支付API异

java实现沙箱测试环境支付宝支付(demo)和整合微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付、附源码)

一.支付宝测试环境代码测试 1.下载电脑网站的官方demo: 下载地址:https://docs.open.alipay.com/270/106291/ 2.下载解压导入eclipse readme.txt请好好看一下. 只有一个Java配置类,其余都是JSP. 3.配置AlipayConfig (1).注册蚂蚁金服开发者账号(免费,不像苹果会收取费用) 注册地址:https://open.alipay.com ,用你的支付宝账号扫码登录,完善个人信息,选择服务类型(我选的是自研). (2).设

apicloud含有微信支付。支付宝支付和苹果内购的代码

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/> <meta name="