zoukankan      html  css  js  c++  java
  • 支付宝手机网页支付

    本节主要描写叙述支付宝手机站点支付,开发网址:https://b.alipay.com/order/productDetail.htm?productId=2013080604609688,光找这个找了半天,呵呵

    在网页中部有四个标签页,选择“技术集成”,下载集成开发包,里面有相关的技术文档和三种语言的代码演示样例。代码演示样例中差点儿集成了全部的代码逻辑。client及服务端仅仅须要将代码拷入自己的项目就可以。


    手机网页支付产品由手机网页即时到账授权接口(alipay.wap.trade.create.direct)、手机网页即时到账交易接口(alipay.wap.auth.authandexecute)两个接口组成。

    必须先调用手机网页即时到账授权接口(alipay.wap.trade.create.direct)获得授权令牌。再调用手机网页即时到账交易接口(alipay.wap.auth.authandexecute)完毕付款。


    在手机网页即时到账授权接口(alipay.wap.trade.create.direct)中,提交方式仅支持POST。在手机网页即时到账交易接口(alipay.wap.auth.authandexecute)中。提交方式仅支持GET,在webview中加载交易接口的url和请求參数即会转入支付宝网页的支付界面。具体接口和请求參数的说明和使用在开发文档上已经介绍的非常具体了。假设还有不明确的地方能够直接參考代码Demo,Java演示样例能够直接导入到Eclipse中执行起来,能够直接演示整个支付流程。须要注意的地方就是,由于是手机端网页接入,在电脑上用浏览器演示的时候,会提示"为保障用户账户安全,禁止非手机訪问",我用的是chrome浏览器。直接装上改动uagent的插件,更改为Android或其他clientua就可以使用。


    支付宝处理完请求后,分两种方式返回处理结果。

    一种是页面跳转同步通知。一种为server异步通知。以下主要讲一下这两种方式的不同。

    返回页面(return_url文件)工作原理 (同步通知)

    即:商户系统请求/支付宝响应交互模式 

    1、 构造请求数据 
    商户通过提供的接口代码演示样例,通过代码演示样例的规则,程序构造与运算得到sign加密结果以及构造后的请求给支付宝的数据集合。GET方式下是URL地址链接,POST方式下是支付宝网关地址及參数集合。 
    2、 发送请求数据 
    把构造完毕的数据集合。通过页面链接跳转或表单提交的方式传递给支付宝。 
    3、 请求的交易 
    支付宝得到这些集合后,会先做安全校验等验证。一系列验证通过后便会处理完毕这次发送过来的数据请求。 
    4、 返回对应数据 
    支付宝对处理完毕的交易,程序上自己主动进行又一次构造成URL地址链接,以自己主动跳转的方式跳回商家在请求时设定好的页面路径地址(參数return_url,商家没设定。则不会跳回)。

     
    5、 对对应的数据进行处理
    商家的返回页面(參数return_url指定页面文件)得到支付宝返回的数据。把这些数据结合自身站点情况。进行数据处理(如:订单更新)。

     


    返回页面(notify_url文件)工作原理 (server异步通知)

    即:支付宝主动通知交互模式(支付宝反馈数据) 

    前提:若要支付宝能主动通知。需商户在请求时设定好通知的页面路径(參数notify_url),且该页面文件全然空白。无不论什么字符。 
    1、 发起通知 
    一旦交易状态发生变更(如:买家已付款,等待卖家发货),支付宝便会依据自己主动进行数据处理,并主动调用商户在请求时设定好通知的页面路径(參数notify_url) 
    2、 对通知数据进行处理 
    商户站点收到支付宝发送过来的通知数据。把这些数据结合自身站点情况。进行数据处理。如:处理返回页(參数return_url)漏掉的订单。做订单更新,即补单措施。 
    3、 在页面上输出success 
    商户站点处理完毕全部的数据处理以后,即程序执行最后,返回写页面“success”7个字符(页面上仅仅同意输出success),以表示自己已经成功处理完毕自己的业务。 
    4、 完毕处理该次通知,不再发送通知 
    支付宝得到商户反馈回来的“success”7个字符信息,进行核对与验证,结束此次通知流程。 
    注意: 
    假设商户反馈给支付宝的字符不是success7个字符,支付宝server会不断重发通知,直到超过24小时22分钟。普通情况下 25 小时以内完毕次通知(通知的间隔频率通常是:2m,10m,10m,1h,2h,6h,15h)。

      

    同步返回(return_url)和异步返回(notify_url)的差别【return_urlnotify_url參数必须是两个返回处理文件的绝对路径】?
    答:同步返回处理(return_url):是一种可视化的返回,浏览器页面跳转通知,仅仅要支付成功。支付宝通过get方式跳转到这个地址,而且带有參数给这个页面。客户获取信息受到买家操作的影响。假设买家支付完
    成后客户server响应比較慢,买家在显示支付宝提示的即时到账支付成功时关闭页面,那么客户站点是获取不到信息,我们这边称为掉单

    并且这个返回处理是一次性调取,即支付成功后才调取同步返回处理。
    异步返回处理(notify_url):它的数据交互是通过server间进行数据交互,必须将其放置在server上(公网)測试,serverpost消息到异步返回处理页面,须要客户技术在异步返回处理页面处理相关的数据处理
    ,然后每一步操作都要返回给支付宝success(不能包括其它的HTML脚本语言,不能够做页面跳转。)这个返回处理假设集成OK。那么基本不会出现掉单,由于支付宝会在24小时之内分6~10次将订单信息返回
    个给客户站点,直到支付宝捕获success


    备注:同步返回处理则会受到买家操作的影响:
    假如买家在操作的时候,支付宝完成进入支付宝提示成功页面,这个时候因为server对应比較慢。那么买家有可能会关闭这个页面。这个时候您们就会接受不到支付宝返回的信息。还有有些网银支付后也不会调取支付宝的同步返
    回处理页面。这样您在同步做数据处理相同接受不到数据。


  • 相关阅读:
    webserver服务器
    轮子哥的网站地址
    构建javaweb服务的docker镜像和容器化启动服务
    spring-cloud-alibaba-gateway
    markdown-记笔记常用语法
    java-生成公私钥命令
    阿里云oss文件服务器
    mybatis-mapper.xml一个标签支持执行多个sql语句
    docker安装nacos
    spring-cloud-alibaba-nacos
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5185971.html
Copyright © 2011-2022 走看看