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

9 篇文章 0 订阅
2 篇文章 0 订阅

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

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

调起付款的步骤

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.参考案例
联科在线(北京)科技有限公司 网页支付
在这里插入图片描述

总结

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值