支付宝支付(沙箱环境相关配置)

支付宝沙箱环境相关配置

本篇博客主要介绍支付宝沙箱环境和后端Alipay.config配置文件的配置,因开发人员使用正式环境进行开发时,需要企业进行注册审核相关资料,准备资料和时间比较久,支付宝为此提供了沙箱环境,大大减轻了开发流程。

(一)准备沙箱环境

1.进入沙箱应用:

链接地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info 

2.生成RSA非对称密钥对

在设置秘钥之前需要下载支付宝开发平台开发助手软件进行生成RSA不对称秘钥。

链接地址:https://opendocs.alipay.com/open/291/105971

 

3.设置RSA2(SHA256)秘钥

 

点击RSA2密钥后面的设置按钮,粘贴上一步生成的公钥,如下:

 

4、设置商户私钥

即上方支付宝开发平台开发助手生成的密钥对中的私钥

(二)后台Alipay.config文件配置

1.设置配置文件中的支付宝公钥

配置文件如下:

package com.yjlc.api.pay.impl.alipay.config;

import java.io.FileWriter;
import java.io.IOException;

/**
 *  @Description:  支付宝支付配置文件
 *  @author: cyb
 *  @Date 2020-07-14
 */
public class AlipayConfig {
    /** 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号(此处用的是沙箱环境) */
    public static String APP_ID = "2016092700611035";
    /** 商户私钥,您的PKCS8格式RSA2私钥,这些就是我们刚才设置的 */
    public static String MERCHANT_PRIVATE_KEY = "替换成支付宝开放平台助手生成的密钥";
    /** 支付宝公钥,查看地址:对应APPID下的支付宝公钥。,这些就是我们刚才设置的 */
    public static String ALIPAY_PUBLIC_KEY ="替换成沙箱环境《RSA2(SHA256)密钥(推荐)》中的支付宝公钥";
    /**异步通知,再这里我们设计自己的后台代码*/
    public static String notify_url = "http://chenyuanbo.natapp1.cc/asynCallback?channelId=ali_pay";

    /** 页面跳转同步通知页面路径(自定义后端路径) 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问*/
    public static String return_url = "http://chenyuanbo.natapp1.cc/ACPSample_B2C/backRcvResponse";

    /** 签名方式*/
    public static String SIGN_TYPE = "RSA2";

    /** 字符编码格式*/
    public static String CHARSET = "utf-8";

    /** 支付宝网关*/
    public static String GATEWAYURL = "https://openapi.alipaydev.com/gateway.do";

    /** 日志输出路径*/
    public static String LOG_PATH = "C:\\";

}

 下图对应上方的支付宝公钥

注意:上方chenyuanbo.natapp1.cc为我用的内网穿透设置的域名,对应本地ip 127.0.0.1:8080,大家在使用的时候切换成自己的内网穿透或者真实的访问域名。

Natapp上付费隧道配置如下:

 

(三)本地host文件配置

Host文件路径如下:

C:\Windows\System32\drivers\etc

 增加以下配置:

127.0.0.1 http://chenyuanbo.natapp1.cc

(四)更改生成付款二维码链接方法

//设置请求参数
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl(AlipayConfig.return_url);
        alipayRequest.setNotifyUrl(AlipayConfig.notify_url);

        //商户订单号,商户网站订单系统中唯一订单号,必填
        String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"), "UTF-8");
        //付款金额,必填
        String total_amount = new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"), "UTF-8");
        //订单名称,必填
        String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"), "UTF-8");
        subject = "yjlcPay";
        //商品描述,可空
        String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"), "UTF-8");

        alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\","
                + "\"total_amount\":\"" + total_amount + "\","
                + "\"subject\":\"" + subject + "\","
                + "\"body\":\"" + body + "\","
                + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
        //请求
        String result = alipayClient.pageExecute(alipayRequest).getBody();

        //输出付款二维码
        response.getWriter().println(result);

以上即为支付宝支付需要更改的配置,若对以上配置有疑问的可以留言讨论,转载请说明出处,博客地址:https://www.cnblogs.com/chenyuanbo/

 

posted @ 2020-08-06 16:55  陈远波  阅读(1395)  评论(0编辑  收藏  举报