您当前位置:资讯中心 >开发 >浏览文章

在DDD集成支付宝支付,看这篇文章就够了!

来源: JAVA日知录 日期:2024/2/28 8:59:47 阅读量:(0)

大家好,我是飘渺。在今天的DailyMart项目实战中,我们将探讨如何在领域驱动设计(DDD)开发中集成支付宝的网页支付功能,以及相关的步骤和注意事项。

一、申请阿里沙箱支付

首先,我们需要申请阿里沙箱支付环境,以便于方便地进行支付集成测试。以下是申请沙箱环境的简要流程:

1.访问支付宝沙箱环境,https://open.alipay.com/develop/sandbox/app,注册并登录。

图片图片

2.设置接口加签方式,并记录对应的公钥和私钥。

图片图片

二、准备内网穿透工具

支付宝支付完成后,支付结果将通过回调通知到您的应用程序(在发起支付时通过NotifyUrl参数指定)。为了确保在开发时接口能够在外网进行访问,我们可以借助内网穿透工具,将本地IP与端口映射成外网可访问地址。

作为示例,我选择使用花生壳进行内网穿透。你也可以根据需求选择其他工具。

注册并登录https://hsk.oray.com,下载最新客户端。

图片图片

登录以后配置外网映射,如上所示,我将本地ip+端口9090 (网关服务)映射成了外网访问,红框部分就是对外的访问地址。

三、支付Demo流程演示

完成上述操作后,我们可以借助Alipay提供的SDK,进行支付单元测试。代码位置:

com.jianzh5.dailymart.module.order.infrastructure.alipay.AliPayTest

@Test
public void test_AliPay() throws AlipayApiException {
    AlipayConfig alipayConfig = new AlipayConfig();
    alipayConfig.setAppId(app_id);
    // 其他配置参数...
  ...
    // 创建AlipayClient
    AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);

    // 创建支付请求
    AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); 
    // 设置回调地址
    request.setNotifyUrl(notify_url);

    Map<String,Object> requestMap = Maps.newHashMap();
    requestMap.put("out_trade_no", "ddd20240221-001");  // 我们自己生成的订单编号
  ...
    
    request.setBizContent(JsonUtils.obj2String(requestMap));

    //调用SDK生成表单
    String form = alipayClient.pageExecute(request).getBody();
    log.info("测试结果:{}", form);
}
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。