支付宝-电脑网站支付

举报
悟空码字 发表于 2023/04/11 12:28:24 2023/04/11
【摘要】 电脑网站支付,也称扫码支付,是专门针对PC端业务而开发的一种支付方式,既有支付宝提供在网页展示一个动态生成的支付二维码,用户通过手机支付宝扫码以后可实现支付功能的一种支付方式。

大家好,我是小悟

1、概念

电脑网站支付,也称扫码支付,是专门针对PC端业务而开发的一种支付方式,既有支付宝提供在网页展示一个动态生成的支付二维码,用户通过手机支付宝扫码以后可实现支付功能的一种支付方式。

2、创建应用

登录支付宝开放平台(open.alipay.com),创建应用,应用审核通过会生成一个APPID。

3、签约电脑网站支付功能

创建应用后,在应用详情页【产品绑定】菜单下,点击【绑定产品】,添加【电脑网站支付】或者在【能力列表】中点击【添加能力】来添加电脑网站支付功能,并确保签约方可调用。然后在【开发设置】中配置应用信息。

image.png

4、配置应用公钥和应用私钥

进入应用详情页 - 开发设置 - 开发信息 - 接口加签方式(密钥/证书)- 点击设置。上传生成的 CSR 文件,选择证书到期后的处理方式,设置安全联系人信息,签署开放平台服务协议,点击确认上传。

证书配置完成后,将生成的应用公钥证书、支付宝公钥证书、支付宝根证书全部下载至本地,便于在接口调用时与应用私钥配合使用。

接口可使用普通公钥方式和公钥证书方式接入,方式不同,SDK的使用也不同,这个取决于设置接口加签是何种方式,这边选择的是公钥证书方式。


完成配置后,可点击【提交审核】,预计会有 1 个工作日的审核时间,请耐心等待。应用上线成功后,状态将变为【已上线】,即可正常调用电脑网站支付接口。

接下来,开发者就可以用 alipayClient 来调用具体的 API 了。alipayClient 只需要初始化一次,后续调用不同的 API 都可以使用同一个 alipayClient 对象。

5、接入SDK

在代码中引入依赖,这边有个注意点就是,如果选择的是公钥证书模式的话,SDK版本需要使用4.11.54.ALL 及以上版本。

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>4.11.54.ALL</version>
</dependency>

/**
* 电脑网站支付
*/
public static void pcWebPay(String amount,HttpServletResponse httpResponse) {
  AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); 
  AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
  alipayRequest.setReturnUrl("https://www.baidu.com");
  alipayRequest.setNotifyUrl("https://xxx.xxx.com/abc/alipay/pcWebPayCallBack");
  alipayRequest.setBizContent("{" +
          "    "out_trade_no":""+System.currentTimeMillis()+""," +
          "    "product_code":"FAST_INSTANT_TRADE_PAY"," +
          "    "total_amount":"+amount+"," +
          "    "subject":"Iphone6 16G"," +
          "    "body":"Iphone6 16G"," +
          "    "passback_params":"123&456&789"," +
          "    "extend_params":{" +
          "    "sys_service_provider_id":""+System.currentTimeMillis()+""" +
          "    }"+
          "  }");
  try {
      String form = alipayClient.pageExecute(alipayRequest).getBody();
      httpResponse.setContentType("text/html;charset=" + CHARSET);
      httpResponse.getWriter().write(form);
      httpResponse.getWriter().flush();
      httpResponse.getWriter().close();
  } catch (AlipayApiException e) {
      e.printStackTrace();
  } catch (IOException e) {
      e.printStackTrace();
  }
}

6、测试

不同于支付宝app支付,支付宝电脑网站支付和手机网站支付一样,接口调用成功后,会直接返回form表单。

直接在页面打开form表单即可,就会跳转到支付宝收银台页面,展示支付二维码,打开手机支付宝扫一扫,即可完成支付。

image.png


如果手机不在身边,也可以点击登录账户付款,会弹出输入支付密码和验证码的页面,这时候输入支付密码和验证码也可以支付成功。

image.png

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。