深入支付宝支付扫描支付-跳转支付宝二维码页面支付与自定义生成二维码支付-1参数配置篇

这里较详细总结一下支付宝扫码支付,从三个方面总结

①参数配置

②跳转固定的支付宝页面进行扫码支付

③自定义二维码扫码支付

参数配置-开放平台相关配置(沙箱环境)

刚开始支付宝的配置参数还是有点让人懵逼的,跟微信支付有点不同,支付宝有个沙箱测试环境,跟正式环境差不多,不过正式环境还需要签约审核,没通过审核调用支付宝接口会报错访问受限。沙箱环境还是挺好用,开放平台登录 - 支付宝申请个账号就送AppID,首先需要点击设置密匙,这里可以下载阿里的工具或openSSL生成,如下用阿里的工具,点击生成密匙即可生成一对自己系统用的私钥公钥(了解RSA2非对称加密),我们要私钥配置到项目里,公钥配置给支付宝(下图“设置/查看”),阿里给我们发信息会用我们给它配的公钥进行加密,我们在用项目里配的私钥进行解密。当配置好应用公钥给支付宝后,支付宝会生成一个支付宝公钥给我们,这个也要配置到项目里,我们向支付宝发送信息时用它加密传送信息给支付宝,支付宝用它的支付宝私钥进行解密,这把钥匙我们看不到的,同样支付宝也看不到我们的应用私钥。除了如下标注的4个参数,还有其它几个固定参数见项目配置文件。

        RSA 是一种非对称的签名算法,即签名密钥(私钥)与验签密钥(公钥)是不一样的, 私钥用于签名,公钥用于验签。在支付宝交易中,会出现两对公私钥,即商户公私钥、支付宝公私钥.
        商户公私钥:由商户生成,商户私钥用于对商户发往支付宝的数据签名;商户公钥需要上传至支付宝,当支付宝收到商户发来的数据时用该公钥验证签名.
        支付宝公私钥:支付宝提供给商户,当商户收到支付宝发来的数据时,用该公钥验签.

项目配置

注意:微信与支付宝的异步通知接口notifyUrl需要外网能访问,可以考虑ngrok/netapp/花生壳做内网穿透进行测试,如下使用了ngrok (官网 ngrok - secure introspectable tunnels to localhost 申请账号购买免费那个就可以玩了,解压进行安装目录,cmd 运行 sunny clientid 531244690e2319b6)。支付宝的同步通知只是非自定义二维码支付成功后的重定向的一个URL,不需要外网访问也是可以的,且自定义二维码扫码这个参数根本没用的。


#支付宝同步异步通知/微信异步通知,注意:自定义生成支付宝二维码支付方案时,配置的returnUrl的是没用的
alipay:
  apiGateway: https://openapi.alipaydev.com/gateway.do 
  appId: 2016101000655165
  privateKey: MIIEvAIBAD...省略...kz/wEn+w==
  zfbPublicKey: MIIBIjANBgkqhk...省略...wIDAQAB
  returnUrl: http://vehicle.free.idcfengye.com/vehicle/payment/service-order/alipay/return 
  notifyUrl: http://vehicle.free.idcfengye.com/vehicle/payment/service-order/alipay/notify
wxpay:
  notifyUrl: http://vehicle.free.idcfengye.com/vehicle/payment/service-order/wxpay/notify
@Configuration
public class AlipayClientConfiguration {
    // 网关
    @Value("${alipay.apiGateway}")
    public  String apiGateway ;
    //应用ID
    @Value("${alipay.appId}")
    public  String appId ;
    // 商户的私钥
    @Value("${alipay.privateKey}")
    public  String privateKey ;
    // 支付宝的公钥
    @Value("${alipay.privateKey}")
    public  String zfbPublicKey ;
    //几个固定参数
    public static String format="json";
    public static String charset="utf-8";
    public static String signType="RSA2";
    public static String aliPublicKey="";
    
    @Bean
    DefaultAlipayClient getAlipayClient() {
        return new DefaultAlipayClient(
                apiGateway,
                appId,
                privateKey,
                format,
                charset,
                zfbPublicKey,
                signType);
    }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值