介绍
华为支付云侧接口 Java SDK Sample。
官方 Java 语言开发库pay-java
由 core
和 service
组成:
core
为基础库。包含自动签名和验签的 HTTP 客户端、回调处理、加解密库。service
为业务服务。基于业务场景提供不同的业务类,其下的方法为对应的http接口。
本示例展示通过pay-java
使用华为支付服务提供的预下单
,预签约
API接口并对回调通知
和敏感信息加解密
等其他内容进行说明。
需要使用华为支付服务接口:
- 预下单:/api/v2/aggr/preorder/create/app (参考[直连商户-预下单])
- 预签约:/api/v2/contract/presign/app (参考[直连商户-预签约])
- 更多接口详细查看:[华为支付服务API参考]
效果预览
运行成功日志输出
demo工程的配置与使用
配置demo工程的步骤如下
- 配置好java环境:JDK 1.8及以上。
- 配置好Maven集成环境。
- 获取商户配置后将配置添加到配置文件petalpayconfig.properties。
- 启动demo工程:src/main/java/com.huawei.petalpay.paymentservice.example/ExampleApplication.java
具体实现
预下单:
- 商户服务器按照商户模型调用华为支付提供的[直连商户预下单]或[服务商/平台类商户预下单]接口。
- 获取预下单号(prepayId),然后组建orderStr返回给客户端。
使用示例如下:
/** Native 支付下单为例 */
public class PrepayQuickStart {
public static PreOrderCreateRequest getRequest() {
return PreOrderCreateRequestV2.builder()
.mercOrderNo("pay-example-" + System.currentTimeMillis()) // 每次订单号都要变,请将pay-example-修改为商户自己的订单前缀
.appId(MercConfigUtil.APP_ID) // appId,需要配置为与商户绑定的正确的appId
.mercNo(MercConfigUtil.MERC_NO) // 商户的商户号
.tradeSummary("请修改为对应的商品简称") // 请修改为商品简称
.bizType("100002") // (100001:虚拟商品购买,100002:实物商品购买,100003:预付类账号充值,100004:航旅交通服务,100005:活动票务订购,100006:商业服务消费,100007:生活服务消费,100008:租金缴纳,100009:会员费缴纳,100011:其他商家消费,100037:公共便民服务)
.totalAmount(2L)
.callbackUrl("https://www.xxxxxx.com/hw/pay/callback") //回调通知地址,通知URL必须为直接可访问的URL,要求为https地址。最大长度为512。请替换为格式正确的结果通知回调地址。
.build();
}
public static void main(String[] args) {
DefaultPetalPayClient payClient = new DefaultPetalPayClient(MercConfigUtil.getMercConfig());