最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 深入了解移动端的支付方式及实现(微信、支付宝、appStore)

    正文概述 掘金(哈利路亚948)   2021-02-11   581

    前言

    刚好前段时间参与的hybird app项目里涉及的支付方面是我负责的,其中包括安卓的微信支付和支付宝支付,ios支付,h5页面支付,所以今天在这里跟大家分享下我所实现的方式跟部分源码。 深入了解移动端的支付方式及实现(微信、支付宝、appStore)

    ios

    ios中的支付主要就是通过像appStore充值来兑现相关的虚拟币。这里只需要在支付的时候判断虚拟币是否足够支付,可以购买就直接调用支付接口,成功后然后跳到成功页面。如果不够则调用与app端提供的api跳到购买页面。(我们的购买页面是原生写的。所以到这就不用管了)

    安卓

    1 支付宝:直接使用form表单即可。

    // 阿里支付
      let div = document.createElement("div");
      if (res.data.form) {
        div.innerHTML = res.data.form;
        document.body.appendChild(div);
        //兼容低端安卓
        this.$nextTick(() => {
          document.forms[0].submit();
        });
        this.sendPaying = false;
      } else {
    	//跳转页面
      };
    

    2 微信支付:在安卓使用微信支付需要主要一点,就是当我们调用微信支付完成后不能直接跳转到支付成功的页面,因为在安卓里获取微信支付接口会有延迟,所以我们必须跳到一个中转页面,通过返回的订单号手动点击确认支付完成来判断支付成功。

     window.location.replace(
      res.data.payUrl +
        "&redirect_url=" +
        encodeURIComponent(
          window.location.origin +
            `跳转页面`
        )
    );
    

    h5

    1 微信内支付:微信内支付的话需要先微信授权登录(具体登陆流程代码就不介绍来)

     // 微信内使用微信支付
      onBridgeReady(data) {
          let id = this.payData.orderIds.join(",");
          id = "wx_" + id;
          let _this = this;
          id = encodeURIComponent(id);
          WeixinJSBridge.invoke(
            "getBrandWCPayRequest",
            {
              appId: data.params.appId, //公众号名称,由商户传入
              timeStamp: data.params.timeStamp, //时间戳,自1970年以来的秒数
              nonceStr: data.params.nonceStr, //随机串
              package: data.params.package,
              signType: data.params.signType, //微信签名方式:
              paySign: data.params.paySign, //微信签名
            },
            function (res) {
              if (res.err_msg == "get_brand_wcpay_request:ok") {
                //跳转
                );
              } else if (res.err_msg == "get_brand_wcpay_request:cancel") {
                _this.$message.error("支付被取消");
              } else {
                _this.$message.error("支付失败");
              }
            }
          );
        },
     this.onBridgeReady(res.data);
    

    2 微信外支付:微信外的就要先注册WeixinJSBridge

    if (typeof WeixinJSBridge == "undefined") {
      if (document.addEventListener) {
        document.addEventListener(
          "WeixinJSBridgeReady",
          this.onBridgeReady,
          false
        );
      } else if (document.attachEvent) {
        document.attachEvent("WeixinJSBridgeReady", this.onBridgeReady);
        document.attachEvent("onWeixinJSBridgeReady", this.onBridgeReady);
      }
    }
    

    最后

    以上就是所有的支付方式跟代码,使用微信跟支付宝支付都是需要配置白名单才可以支付,如果有啥不清楚或者不对的欢迎前来交流。。。


    起源地下载网 » 深入了解移动端的支付方式及实现(微信、支付宝、appStore)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元