前言

企业制定金额生成微信二维码集成完后,客户需要再集成支付宝,经过差文档及看博客终于实现出来(支付宝生成指定金额二维码,需要在“蚂蚁金服开放平台”注册账号,并且开通“电脑网站支付”详情请参阅官方文档;

电脑网站支付(普通公钥方式)

package com.litte.util;import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.response.AlipayTradePagePayResponse;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;/*** Created by Administrator on 2018/12/22.*/
public class TestJxx {// 支付宝网关,aliPayUrlprivate static final String ALIPAY_URL = "https://openapi.alipay.com/gateway.do";// 商户分配的appidprivate static final String ALIPAY_APPID = "APPID";// 应用私钥private static final String APP_PRIVATE_KEY = "APP_PRIVATE_KEY ";// 应用公钥private static final String APP_PUBLIC_KEY = "APP_PUBLIC_KEY ";// 支付宝公钥private static final String ALIPAY_PUBLIC_KEY = "ALIPAY_PUBLIC_KEY ";// 请求使用的编码格式,如utf-8,gbk,gb2312等private static final String CHARSET = "UTF-8";public static void main(String[] args) throws AlipayApiException {String form = "";try {AlipayClient alipayClient = new DefaultAlipayClient(ALIPAY_URL, ALIPAY_APPID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");//创建API对应的requestAlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setNotifyUrl("https://www.xxx.cn/wxPay/aliPayReceiptBack");alipayRequest.setBizContent("{" +"    \"out_trade_no\":" + getOrderIdByTime() + "," +"    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +"    \"total_amount\":\"0.01\"," +"    \"subject\":\"支付宝支付\"," +"    \"qr_pay_mode\":\"4\"," +"    \"qrcode_width\":120," +"    \"extend_params\":{" +"    \"sys_service_provider_id\":\"sys_service_provider_id\"" +"    }" +"  }");//填充业务参数// 调用SDK生成表单AlipayTradePagePayResponse alipayTradePagePayResponse = alipayClient.pageExecute(alipayRequest);if(alipayTradePagePayResponse.isSuccess()){// 返回的form表单form = alipayTradePagePayResponse.getBody();}else{form = "";}System.out.println("------"+form);} catch (AlipayApiException e) {e.printStackTrace();}}public static String getOrderIdByTime() {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String newDate = sdf.format(new Date());String result = "";Random random = new Random();for (int i = 0; i < 3; i++) {result += random.nextInt(10);}return newDate + result;}
}

电脑网站支付(公钥证书方式)

package com.tbd.bigdipper.util;import com.alipay.api.AlipayApiException;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.response.AlipayTradePagePayResponse;/*** Created by Administrator on 2019/8/20.*/
public class TextJkx {// 支付宝网关,aliPayUrlprivate static final String ALIPAY_URL = "https://openapi.alipay.com/gateway.do";// 商户分配的appidprivate static final String ALIPAY_APPID = "ALIPAY_APPID";// 应用私钥private static final String PRIVATE_KEY = "PRIVATE_KEY";// 应用公钥证书路径private static final String APP_CERT_PATH = "APP_CERT_PATH";// 支付宝公钥证书文件路径private static final String ALIPAY_CERT_PATH = "ALIPAY_CERT_PATH";// 支付宝CA根证书文件路径private static final String ALIPAY_ROOT_CERT_PATH = "ALIPAY_ROOT_CERT_PATH";// 请求使用的编码格式,如utf-8,gbk,gb2312等private static final String CHARSET = "UTF-8";// 签名类型private static final String SIGN_TYPE = "RSA2";// 支付宝扫码支付回执请求接口private static final String ALIPAYBACKURL = "ALIPAYBACKURL";public static void main(String[] args) throws AlipayApiException {// 报文请求时自动进行签名DefaultAlipayClient alipayClient = aliPaySignature();//创建API对应的requestAlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();// 交易成功后,支付宝通过 post 请求 notifyUrl(商户入参传入),返回异步通知参数。alipayRequest.setNotifyUrl(ALIPAYBACKURL);alipayRequest.setBizContent("{" +"    \"out_trade_no\":" + "20190825155036" + "," +"    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +"    \"total_amount\":\"1\"," +"    \"subject\":\"支付宝支付\"" +"  }");//填充业务参数// 调用SDK生成表单AlipayTradePagePayResponse response = alipayClient.pageExecute(alipayRequest);String form = response.getBody();System.out.println("===form===" + form);}/*** @Description: 电脑网站支付报文请求时自动进行签名* @Author: Mr.Jkx* @date: 2019/9/3 9:29*/public static DefaultAlipayClient aliPaySignature() throws AlipayApiException {CertAlipayRequest certAlipayRequest = new CertAlipayRequest();certAlipayRequest.setServerUrl(ALIPAY_URL);certAlipayRequest.setAppId(ALIPAY_APPID);certAlipayRequest.setPrivateKey(PRIVATE_KEY);certAlipayRequest.setFormat("json");certAlipayRequest.setCharset(CHARSET);certAlipayRequest.setSignType(SIGN_TYPE);certAlipayRequest.setCertPath(APP_CERT_PATH);certAlipayRequest.setAlipayPublicCertPath(ALIPAY_CERT_PATH);certAlipayRequest.setRootCertPath(ALIPAY_ROOT_CERT_PATH);DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);return alipayClient;}
}

虫洞

  1. 秘钥配置参阅官方文档配置秘钥
  2. 电脑网站支付 Demo(包括JAVA,PHP,.NET)下载
  3. 签名生成(普通公钥方式/公钥证书方式)签名生成方式

支付宝-电脑网站支付初长成相关推荐

  1. 支付宝开放平台开发助手_支付宝:如何创建和接入支付宝电脑网站支付-新手必备...

    1.登录支付宝 1.打开支付宝官网,以"我是支付宝商家"用户登录 https://www.alipay.com/ 2.进入"产品中心",选择并申请支付类型 2. ...

  2. Spring Boot集成支付宝电脑网站支付功能

    Spring Boot集成支付宝电脑网站支付功能 接入准备 登录 创建应用 添加能力 生成私钥与公钥 开发设置 沙箱环境 示例Demo的使用与学习 下载Demo 启动项目 参数配置 执行测试 Spri ...

  3. Laravel 集成支付宝电脑网站支付

    前期准备: 1.下载SDK,里面还有Demo,可以参照Demo里面的内容快速接入 支付宝电脑网站支付SDK&Demo 2.把下载的zip文件解压,放到项目目录里,这里作者放在app文件夹里,方 ...

  4. 支付宝电脑网站支付 demo 启动过程

    接支付的这个需求,想了很久,看了官网总是没有头绪,依旧不知道怎么做,于是把demo下载下来跑一下,由于太菜,弄了一天. 准备工作: 支付宝开发平台登录后注册获取APPID,支付宝公钥,私钥 (http ...

  5. 接入支付宝电脑网站支付实现JAVA版

    简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址,因为我这些服务天天在更新,而我的文章是教大家方法,而让你不是照葫芦画瓢 ...

  6. SpringBoot(二)集成支付宝 - 电脑网站支付和查询账单案例

    一.简介 电脑支付常用于电商和后台管理系统的账户充值等场景. 电脑网站支付 文档 电脑网站支付流程图 项目源代码(含数据库):码云Gitee 二.集成步骤 0.创建应用.配置密钥 集成前需要先创建应用 ...

  7. 支付宝电脑网站支付及回调

    官方文档:https://docs.open.alipay.com/270 支付 电脑网站支付的支付接口 alipay.trade.page.pay 调用时序图如下: 调用顺序如下: 商户系统请求支付 ...

  8. 支付宝电脑网站支付(新版)

    前言 继前面几篇文章以后,查看了常用的支付方式,发现还有电脑网站的支付方式,因此,这里稍微整理了一下,其实原理和手机网站支付差不多,只是使用沙箱测试的时候可能会遇到一点小坑. 沙箱采坑 因为在本地测试 ...

  9. 支付宝电脑网站支付 alipay.trade.page.pay

    只涉及支付接口 其他接口没有使用 支付宝官方文档:https://docs.open.alipay.com/270/105899/ 支付接口文档 https://docs.open.alipay.co ...

最新文章

  1. STM32中GPIO的8种工作模式
  2. SharePoint优秀blog文章汇总
  3. Python 技巧篇-官方网站打不开的情况下通过官方获取最新python安装包方法
  4. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...
  5. 自底向上的web数据操作指南
  6. android volley 上传图片 和参数,android Volley 上传文件上传图片
  7. 网络服务器安全协议,ipsec 网络安全协议
  8. VA_X_Setup1849.zip
  9. 【重磅快讯】T11 2019数据智能技术峰会举办,AI将成为行业颠覆者
  10. 如何使用webrtc 一
  11. JavaScript:综合案例-表单验证
  12. kafka入门1-集群生产消息 报:ERROR Producer connection to localhost:9092 unsuccessful
  13. springboot 集成 log4j,log4j配置不同包不同日志输出级别(按包输出不同级别日志)
  14. Python实现八大排序算法
  15. ZOJ 3987 秦皇岛现场赛G题 java
  16. 笔记本电脑装固态硬盘和内存
  17. 程序员这条路,选择深耕技术,还是全面学习比较好?
  18. Servlet的安全(第十三篇)
  19. 使用JDBC的基本步骤
  20. 创建Firebase项目并接入Firebase推送: Firebase Cloud Messaging (FCM)

热门文章

  1. 错过了电商,错过了微商,但是你刚好赶上了社交电商。
  2. glusterfs安装
  3. c#缩小至任务栏窗体弹出_C#实现任务栏通知窗口
  4. 测试接口生成文档的工具 APIFOX
  5. React兄弟组件间传参
  6. Leetcode373猜数字大小2
  7. 周杰伦新歌《说好不哭》上线,程序员哭了......
  8. MATLAB学习笔记:矩估计
  9. python 构造 whois 请求
  10. html一排小标题怎么写,如何写标题吸引人,100个优美小标题推荐