当前位置:   article > 正文

java对接支付宝小程序支付_java 支付宝小程序支付配置步骤

java 支付宝小程序支付配置步骤

        今天晚上12点部署生产项目,又是个不眠夜。

        之前整的好多东西都忘光了,还是记录下来吧。

        跟对接支付宝支付差不多,地址:小程序支付能力介绍 | 小程序

开通流程:

  1. 1.先要去支付宝开放平台,创建小程序。
  2. 2.拿到创建好的APPID。
  3. 3.需要开通相关能力,如果支付能力,签约能力等,管理 - > 能力管理页面
  4. 4.在开发设置拿到支付网关地址,设置公钥私钥,白名单信息等
  5. 5.使用支付宝开放平台开发助手,生成公钥私钥
  6. 6.接口内容,可加密可不加密都行,
  7. 7.下载服务端sdk地址:概述 | 网页&移动应用 我用的是通用版,把依赖放到pom里就可以了
  8. 8.根据 “统一收单交易创建接口” 接口写就行了

开发流程:

  1. 1、用户在小程序上点击 "充值" 按钮,调用后端服务接口,服务接口调用支付网关,
  2. 2、支付网关根据小程序的appid和支付宝公钥、小程序私钥调用支付宝java通用版SDK(小程序需要一个支付宝的uuid就是三方登录时获取的支付宝user_id),获取到tradeNo支付宝交易流水号,将流水号返给后台服务,然后后台服务返给小程序,
  3. 3、小程序根据流水号去唤起支付宝收银台,完成请求操作后,
  4. 4、支付宝服务端会异步通知支付网关,然后支付网关通知服务后台是否支付成功了,
  5. 5、然后做自己的业务逻辑处理,更新表呀,发送通知呀等操作

SDK部分代码:

请求:

  1. AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
  2. AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
  3. request.setNotifyUrl("");
  4. JSONObject bizContent = new JSONObject();
  5. bizContent.put("out_trade_no", "20210817010101003");
  6. bizContent.put("total_amount", 0.01);
  7. bizContent.put("subject", "测试商品");
  8. bizContent.put("buyer_id", "2088102146225135");
  9. bizContent.put("timeout_express", "10m");
  10. 商品明细信息,按需传入
  11. //JSONArray goodsDetail = new JSONArray();
  12. //JSONObject goods1 = new JSONObject();
  13. //goods1.put("goods_id", "goodsNo1");
  14. //goods1.put("goods_name", "子商品1");
  15. //goods1.put("quantity", 1);
  16. //goods1.put("price", 0.01);
  17. //goodsDetail.add(goods1);
  18. //bizContent.put("goods_detail", goodsDetail);
  19. 扩展信息,按需传入
  20. //JSONObject extendParams = new JSONObject();
  21. //extendParams.put("sys_service_provider_id", "2088511833207846");
  22. //bizContent.put("extend_params", extendParams);
  23. 结算信息,按需传入
  24. //JSONObject settleInfo = new JSONObject();
  25. //JSONArray settleDetailInfos = new JSONArray();
  26. //JSONObject settleDetail = new JSONObject();
  27. //settleDetail.put("trans_in_type", "defaultSettle");
  28. //settleDetail.put("amount", 0.01);
  29. //settleDetailInfos.add(settleDetail);
  30. //settleInfo.put("settle_detail_infos", settleDetailInfos);
  31. //bizContent.put("settle_info", settleInfo);
  32. 二级商户信息,按需传入
  33. //JSONObject subMerchant = new JSONObject();
  34. //subMerchant.put("merchant_id", "2088000603999128");
  35. //bizContent.put("sub_merchant", subMerchant);
  36. 业务参数信息,按需传入
  37. //JSONObject businessParams = new JSONObject();
  38. //businessParams.put("busi_params_key", "busiParamsValue");
  39. //bizContent.put("business_params", businessParams);
  40. 营销信息,按需传入
  41. //JSONObject promoParams = new JSONObject();
  42. //promoParams.put("promo_params_key", "promoParamsValue");
  43. //bizContent.put("promo_params", promoParams);
  44. request.setBizContent(bizContent.toString());
  45. AlipayTradeCreateResponse response = alipayClient.execute(request);
  46. if(response.isSuccess()){
  47. System.out.println("调用成功");
  48. } else {
  49. System.out.println("调用失败");
  50. }

响应:

  1. {
  2. "alipay_trade_create_response": {
  3. "code": "10000",
  4. "msg": "Success",
  5. "out_trade_no": "20150423001001",
  6. "trade_no": "2015042321001004720200028594"
  7. },
  8. "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
  9. }

这里说一下支付宝和支付宝小程序的区别,支付宝是将会话id返给前端,小程序是将tradeNo交易流水号返给前端,在有就是支付宝小程序需要一个用户自己的uuid(三方登录时获取的支付宝user_id),其他基本一样。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/840744
推荐阅读
相关标签
  

闽ICP备14008679号