网页调起支付宝付款和微信付款

昨天在指导客户制作付款网页的时候写了部分说明文档,觉得其中有很多对第一次接触这方面的人能有所帮助,在此分享一下

调起付款的步骤

1.获取微信code(支付宝是auth_code,以下统称code)

不论是微信还是支付宝的code都是需要通过重定向获取的,其中需要拼接进微信公众号的appid(支付宝的需要自己去平台申请),然后 重定向跳转的网址 是你接受重定向信息的地方,网址的域名需要在管理后台的授权回调地址中配置,不然会跳转失败,具体的配置方法可以参考其他的文章,这里不做赘述。

微信重定向网址:“https://open.weixin.qq.com/connect/oauth2/authorize?appid={{APPID}}&redirect_uri={{你的重定向页面网址}}&response_type=code&scope=snsapi_base&state=123&connect_redirect=1#wechat_redirect”
支付宝重定向网址:“https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id={{APPID}}&scope=auth_base&redirect_uri={{你的重定向页面网址}}"

跳转到重定向页面之后,通过getQueryVariable(variable)方法获取code,具体操作如下:

        var code = getQueryVariable("code");//这是一个现成的方法,直接拿过去用就行function getQueryVariable(variable) {var query = window.location.search.substring(1);var vars = query.split("&");for (var i = 0; i < vars.length; i++) {var pair = vars[i].split("=");if (pair[0] == variable) { return pair[1]; }}return (false);}

2.通过code获取openid(支付宝叫user_id,以下统称为openid)

这里说明一下,这里的opnid是不能在网页中直接获取的,你可以通过调用你的后端接口获取,不然得到的openid是没用的,我在下面贴上我最近做的一个案例获取openid的方式。

           $.ajax({type: "post",url: "GetOpenid.ashx",//我把调接口的地方写在这里,调用的是我们公司的后端接口contentType: "application/x-www-form-urlencoded;charset=utf-8;",data: { auth_code:code,appid:appid},dataType: "text",success: function (data) {window.openid = data;},error: function (error) {//alert("error=" + error);}});

3.获取商户信息

既然是付款,那肯定需要有一个付款的对象,微信和支付宝付款都有商户号这一说的,以下是我获取商户号的代码:(这里因人而异,有些人是不需要获取的,主要看你调起统一下单接口的时候需不需要商户号的相关信息

     $.ajax({type: "post",url: "GetToken.ashx",contentType: "application/x-www-form-urlencoded;charset=utf-8;",data: { store_no:store_no},dataType: "json",success: function (data) {$(".shop-name").append(data["store_name"]);window.sn = data["store_name"];window.merchant_key = data["merchant_key"];window.merchant_no = data["merchant_no"];            },error: function(error) {alert( error.responseText);}});

4.调取统一下单接口获取预支付信息

微信:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
支付宝:https://opendocs.alipay.com/apis/api_49/alipay.open.mini.experience.query/

5.最后一步,调起支付

获取到预支付信息之后再调起支付就很简单了,直接看代码:

      //支付宝AlipayJSBridge.call("tradePay", {tradeNO: trade_no},function (data) {if ("9000" == data.resultCode) {alert("支付成功")}else {alert("支付失败")}});//微信WeixinJSBridge.invoke('getBrandWCPayRequest', data,function (res) {if (res.err_msg == "get_brand_wcpay_request:ok") {alert("支付成功")}else {alert("支付失败")}});

6.支付成功

微信:

支付宝:

7.参考案例
联科在线(北京)科技有限公司 网页支付

总结

不管是微信还是支付宝,其文档总是说的不甚明了,所以我在第一次接触这一块的时候也走了很多弯路,但是程序员不就是在一次次走弯路中成长的吗?加油哦!!!

网页调起支付宝付款和微信付款相关推荐

  1. PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付

    第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...

  2. 利用Apple Developer申请苹果开发者账号(支付宝微信付款)

    因为近期苹果开发者账号在网页申请无法付款,所以苹果推出了Apple Developer 应用,支持在苹果手机申请开发者账号并且付款,支付宝微信银行卡都可以付款! 无法在网页申请的可以尝试这个方式去申请 ...

  3. 用支付宝或微信付款,和直接刷卡有什么区别?

    移动支付还在全球萌芽阶段时,中国移动支付以惊人的发展速度成为世界第一.目前微信支付和支付宝占领着国内95%以上的移动支付市场,但是刷卡支付有其移动支付无法比拟的特点,因此尽管其他支付方式在逐渐淘汰的情 ...

  4. 安卓非微信内置浏览器中的网页调起微信支付的方案研究

    问题来源 之前在app中集成过微信支付,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的WebView中打开第三方 ...

  5. 苹果关于微信网页支付和支付宝支付遇到的一些问题

    苹果关于微信网页支付和支付宝支付遇到的一些问题 1.微信网页支付,支付宝网页支付(现在都是用wkwebview,就不在写关于webview的了) static const NSString *Comp ...

  6. 非微信内置浏览器中的网页调起微信支付的方案研究

    问题来源 之前在app中集成过微信支付,当时还写了一篇扫坑贴,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的We ...

  7. 放心!骗子也拿不走你的微信付款码,你的财产还是安全的

    近日,有谣传称,某地一位邓女士微信付款码截图后,被不法分子盗刷事件,微信官方进行了相关澄清回复,微信早在2016年就已经通过技术手段,切断了将微信付款码截图发给其他人后被盗刷的可能性. 微信官方表示, ...

  8. 微信公众平台使用JSSDK网页调起扫码并获取扫码数据(PHP)

    微信公众平台使用JSSDK网页调起扫码并获取扫码数据 初学者,部分css样式在网上扒下来的,功能实现了,代码很糙,非常糙,望海涵,也希望大神多指导. QQ:961052877,有问题大家一起交流.可以 ...

  9. Android 家长 微信支付,小学生使用微信付款,老师通知禁止学生用手机,家长:我找校长...

    [导读]小学生使用微信付款,老师通知禁止学生用手机,家长:我找校长 随着生活水平的提高,科技的发展,在我们日常生活中已经很少看到人们使用现金消费了,如今就连小学生在学校小卖部卖东西都用微信支付了.下面 ...

  10. 企业商户如何开通付款到微信零钱

    企业商户如何开通付款到微信零钱 前言 波俊科技(公众号:波俊助手)作为微信服务商,一直致力于发展灵活用工发薪板块,为广大平台商家提供开通付款到微信零钱.微工卡及发薪方案定制服务,以稳定优质的服务,过硬 ...

最新文章

  1. 浅析MySQL InnoDB的隔离级别
  2. Java好文统计( 引用 )
  3. Python学习笔记:‘’AttributeError: NoneType object has no attribute‘’
  4. JavaScript面向对象——深入理解原型继承
  5. 搜索引擎的十大秘密(收藏)
  6. 短板决定高度 | 人工智能的数学基础
  7. Leetcode - 142. Linked List Cycle II
  8. AndroidStudio_从Eclipse到AndroidStudio开发工具_两者使用的区别_通过向导新建项目和引入module---Android原生开发工作笔记68
  9. mysql 查询最早 表,【MySQL】MySQL查询表的创建时间
  10. 微信开发工具获取用户头像和用户昵称,实现本地和真机调试
  11. 适合小孩接触编程起步的几款软件,从游戏中学习编程
  12. RxJava 沉思录(一):你认为 RxJava 真的好用吗?
  13. Codeforces Gym 100015A Another Rock-Paper-Scissors Problem 找规律
  14. Spring - Spring容器概念及其初始化过程
  15. 穿冰丝很凉快,是有降温作用吗?穿戴冰丝衣物要注意哪些?
  16. 商品cta策略_《衍生品系列研究之三》:国内商品期货常用日内CTA策略测试
  17. Silverlight for Linux
  18. ARM Linux对signal的处理过程
  19. G - 。。。。。。。
  20. Nvidia GeForce GT730不支持Pytorch 1.2.x GPU功能与可能解决办法及Pytorch各版本CUDA Capability兼容列表

热门文章

  1. IE浏览器 请求报304,解决办法 设置页面禁止缓存
  2. segmentation fault
  3. Python Traceback (most recent call last)【StopIteration】
  4. C标准库-va_list
  5. 基于单片机的水壶自动加热系统_一种基于单片机的电热水壶控制系统的制作方法...
  6. ROS学习记1——玩弄小海龟
  7. Python faker函数
  8. java.lang.InstantiationException: can't instantiate class
  9. 51单片机堆栈深入剖析(转)
  10. 星际争霸2 AI开发