1、支付宝H5支付

一、支付宝官方文档:
官方文档:快速阅读h5支付的官方文档,了解整个开发流程

https://openhome.alipay.com/developmentDocument.htm
注:时间充裕可以花点时间详细阅读整个开发流程和开发细节,阅读文档是支付的一个前提和基础。有时候可能时间比较紧文档内容又多,那我的个人习惯是先粗略阅读整个流程,而后边开发期间遇到了问题再查看文档细节。
建议:先仔细看支付时序图,弄清楚整个支付流程,再看相应接口调用。

二、支付商户申请:

1、审核是需要时间,所以这个工作应当是越早越好。这个支付账号申请需要企业资质,个人是无法申请的。虽然这个不属于开发范畴,对于开发者可能只是需要一些必要的参数,比如:appId、公钥、私钥,作为开发有必要提醒自己或者运营人员或者产品经理,赶快申请支付我开发参数,以免影响自己的开发进程。总之,支付账号的申请是首要工作。

2、接入应用,生成公钥、私钥:https://blog.csdn.net/qq_38380025/article/details/82734911

三、开发阶段:
  • Maven项目引入支付SDK依赖
  • 传统项目导入jia包 例如: alipay-sdk-java-3.3.0.jar
  • 参数配置说明
app_id: 2014072300007148 #支付宝分配给开发者的应用ID :
serverUrl: https://openapi.alipay.com/gateway.do #支付宝网关地址,生成订单。
alipay_public_key: #支付宝的公钥 (由应用公钥生成的):校验sign签名,判断是不是
  #我们的请求数据有没有被恶意修改。支付回调的时候,我们进行验签是不是支付宝的请求数据有没有被恶意修改
app_private_key: #商户的私钥 (应用私钥):生成sign签名,加密好数据。(商户自己保存)
sign_type: RSA2 # 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,
#推荐使用RSA2(由于引入支付宝SDK,生成sign签名由支付API完成)
charset : utf-8
format: json #仅支持JSON
notify_url: /aliPay/notifyUrl #支付宝服务器主动异步通知商户服务器支付结果
return_url: https://www.baidu.com/ #支付操作或取消,自动触发返回的界面,也就是当
#你支付完成后,跳转的地址。
product_code: QUICK_WAP_WAY #销售产品码,商家和支付宝签约的产品码(默认QUICK_WAP_WAY)
四、测试阶段:

1.沙箱测试: https://docs.open.alipay.com/200/105311/

第一步:通过支付宝官方文档下载秘钥生成工具。

第二步:设置公钥、私钥。

第三步:测试下单,回调。

        下载沙箱支付app,支付账户、支付密码:文档中有默认帐密 

https://openhome.alipay.com/platform/appDaily.htm?tab=account
2.测试环境测试:

第一步:登陆商户管理平台,进入管理中心,开发者中心,网页&移动应用。

第二步:创建应用,选择支付接入,填写测试环境域名地址相关信息。

第三步:复制APP_ID、公钥、私钥到项目配置文件。
五、开发中遇见的问题:

1、回调地址必须外网可以访问:所以测试环境回调地址一定要注意。可以使用花生壳工具外网映射本机电脑。

2、沙箱测试:需要下载沙箱支付APP,使用沙箱买家登陆(账户密码文档都有)。

3、验签:要注意使用支付宝公钥,而非应用公钥。因为支付宝公钥是应用公钥生成的。还有支付宝公钥和应用私钥用同一种类型(例如:RSA2)

4、前后端分离问题:

    背景:支付宝return_url 或者微信redirect_url 直接返回静态页面的话,前端是拿不到用户
与订单的相关参数,所以无法调用后台接口查询是否支付成功。

    1、传统jsp页面:配置支付宝return_url为后台接口地址,也就是支付宝的同步通知,支付宝
会把我们传的参数返回给我们,我们解析返回给前端jsp页面。

    2、前后端分离:后端无法携带参数直接访问前端静态页面,需要前端解析return_url后面携带
的交易流水号请求后端接口,确认订单是否支付成功。

5、如何请求支付接口时携带业务参数,在异步回调时拿到业务参数?

    请求支付宝:可以把业务参数拼接成字符串以逗号隔离放在body参数中,
异步回调解析body拿到业务参数。

    请求微信:可以把业务参数拼接成字符串以逗号隔离放在attach参数中,异步回调
解析attach拿到业务参数。
六、线上环境问题:

1、操作已超时,请重新发起支付。

    起初以为是传参有异常,导致一直无法唤起支付宝支付,后来发现因为测试期间使用的沙箱app
选择了默认使用其支付,导致线上环境支付依然唤起沙箱app,致使操作失败。

你可能感兴趣的:(1、支付宝H5支付)