微信支付宝在线支付的流程

本文详细介绍了微信和支付宝在线支付的实现步骤,包括申请账号、引入依赖、配置信息、生成订单、调起支付和接收回调等关键环节,帮助开发者顺利集成支付功能。
摘要由CSDN通过智能技术生成

微信在线支付实现步骤:

第一步:申请微信支付账号

前往 微信支付官网 进行注册和登录。 在商户平台中,申请成为微信商户,获取商户号、AppID、AppSecret、商户API密钥等信息。

第二步:引入依赖

在您的项目中,引入微信支付的相关依赖。例如,使用微信官方提供的 Java SDK。

<!-- 微信支付 SDK依赖 --> <dependency> 
<groupId>com.github.wxpay</groupId> 
<artifactId>wxpay-sdk</artifactId> 
<version>xxx</version>
 </dependency>

第三步:配置支付信息

在您的项目配置文件中,填入微信支付的相关信息,如商户号、AppID、AppSecret、商户API密钥等,创建配置读取类WxPayConfig 。

# 微信支付配置 
wechat.pay.mch-id=xxxxxx 
wechat.pay.app-id=xxxxxx 
wechat.pay.app-secret=xxxxxx 
wechat.pay.api-key=xxxxxx

//读取配置信息
public class WxPayConfig {

    /**
     * 商户号
     */
    private String mchId;

    /**
     * 商户API证书序列号
     */
    private String mchSerialNo;

    /**
     * 商户私钥文件
     */
    private String privateKeyPath;

    /**
     * APIv3密钥
     */
    private String apiV3Key;

    /**
     * APPID
     */
    private String appid;

    /**
     * 微信服务器地址
     */
    private String domain;

    /**
     * 接收结果通知地址
     */
    private String notifyDomain;

    /**
     * APIv2密钥
     */
    private String partnerKey;

    /**
     * 获取商户的私钥文件
     * @param filename
     * @return
     */
    public PrivateKey getPrivateKey(String filename){

        try {
            return PemUtil.loadPrivateKey(new FileInputStream(filename));
        } catch (FileNotFoundException e) {
            throw new RuntimeException("私钥文件不存在", e);
        }
    }

    /**
     * 获取签名验证器
     * @return
     */
    @Bean
    public ScheduledUpdateCertificatesVerifier getVerifier(){

        log.info("获取签名验证器");

        //获取商户私钥
        PrivateKey privateKey = getPrivateKey(privateKeyPath);

        //私钥签名对象
        PrivateKeySigner privateKeySigner = new PrivateKeySigner(mchSerialNo, privateKey);

        //身份认证对象
        WechatPay2Credentials wechatPay2Credentials = new WechatPay2Credentials(mchId, privateKeySigner);

        // 使用定时更新的签名验证器,不需要传入证书
        ScheduledUpdateCertificatesVerifier verifier = new ScheduledUpdateCertificatesVerifier(
                wechatPay2Credentials,
                apiV3Key.getBytes(StandardCharsets.UTF_8));

        return verifier;
    }

第四步:生成预支付订单

使用微信支付的 API,通过发送请求生成预支付订单。您需要提供订单金额、商品描述、用户OpenID等信息。

 /**
     * 创建订单,调用Native支付接口
     * @param productId
     * @return code_url 和 订单号
     * @throws Exception
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Map<String, Object> nativePay(Long productId) throws Exception {

        log.info("生成订单");

        //生成订单
        OrderInfo orderInfo = orderInfoService.createOrderByProductId(productId, PayType.WXPAY.getType());
        String codeUrl = orderInfo.getCodeUrl();
        if(orderInfo != null && !StringUtils.isEmpty(codeUrl)){
            log.info("订单已存在,二维码已保存");
            //返回二维码
            Map<String, Object>
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值