700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 接入支付宝沙箱环境

接入支付宝沙箱环境

时间:2019-05-27 14:28:41

相关推荐

接入支付宝沙箱环境

接入支付宝沙箱环境

1:先登陆支付宝的沙箱环境

登陆地址:/platform/appDaily.htm看下里面的东西

2:点击左侧沙箱应用下拉看到下载钱包这个是登陆沙箱账号的一个app下载下来使用沙箱账号的买家账号登陆

3:配置沙箱测试账号的密钥:基本思路是先生成一对密钥对最好下载支付宝的工具生成选择

点击生成密钥就可以了。记得保存一会会用到。

点击查看应用公钥将生成的公钥放进去(我已经生成了所以回显示我截图这样的)。

这一块最好自己百度学下吧,不是很难。

下面上代码了:自己搭个spring boot的服务,保证能跑起来

引入这个架包

com.alipay.sdk

alipay-sdk-java

3.3.4.ALL

package com.business.bstool.docTodownIoad.controller;

import cn.hutool.core.io.FileUtil;

import cn.hutool.extra.qrcode.QrCodeUtil;

import com.alibaba.fastjson.JSONObject;

import com.alipay.api.AlipayClient;

import com.alipay.api.DefaultAlipayClient;

import com.alipay.api.request.AlipayTradePrecreateRequest;

import com.alipay.api.response.AlipayTradePrecreateResponse;

import lombok.SneakyThrows;

import org.springframework.amqp.core.AmqpTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

import java.util.HashMap;

import java.util.Map;

/**

@author :zhaoxue_wei

@date :Created in /12/16 16:18

文件说明:

*/

@Controller

@RequestMapping("/ZhiFuBao")

public class ZhiFuController {

private static ThreadLocal requestThreadLocalHolder = new ThreadLocal();

public static String APP_ID = “沙箱环境里面去找”;

/**

公钥

/

public static String a = “你生成的密钥对”;

/*私钥

*/

public static String b =“你生成的密钥对”;

//私钥

public static String APP_PRIVATE_KEY = b;

public static String CHARSET = “UTF-8”;

//支付宝公钥=查看支付宝公钥中的数值

public static String ALIPAY_PUBLIC_KEY = “”;

@Autowired

private AmqpTemplate rabbitTemplate;

@SneakyThrows

@ResponseBody

@GetMapping("/demo")

public String payDemo() {

AlipayClient alipayClient = new DefaultAlipayClient(“/gateway.do”,

APP_ID, APP_PRIVATE_KEY, “json”, CHARSET, ALIPAY_PUBLIC_KEY, “RSA”); //获得初始化的AlipayClient

AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); //创建API对应的request类

Map<String,String> map = new HashMap();

map.put(“out_trade_no”,“0320010101016”);//商户订单号,需要保证商家系统不重复。

map.put(“total_amount”,“100”);// total_amount:订单金额。

map.put(“subject”,“Iphone6 16G”);// subject:商品的标题/交易标题/订单标题/订单关键字等。不可使用特殊字符,如 /,=,& 等。

map.put(“store_id”,“2088621955460628”);// store_id:商户门店编号。

map.put(“timeout_express”,“90m”);// timeout_express:交易超时时间

String str = JSONObject.toJSONString(map);request.setBizContent(str);request.setNotifyUrl("http://365w51z250.zicp.vip/ZhiFuBao/callback");AlipayTradePrecreateResponse response = alipayClient.execute(request);System.out.println(response.getBody());JSONObject jsonObject = JSONObject.parseObject(response.getBody());JSONObject body = JSONObject.parseObject(jsonObject.getString("alipay_trade_precreate_response"));//判断返回结果String qrcodde = body.getString("qr_code");QrCodeUtil.generate(qrcodde, 300, 300, FileUtil.file("D:/qrcode.jpg"));return "";

}

@PostMapping("/callback")

@ResponseBody

public String callback(HttpServletRequest request) {

System.out.println(“回调通知=”);

System.out.println(request.getParameter(“out_trade_no”));

System.out.println(request.getParameter(“trade_status”));

return "success";

}

}

这些就是全部的代码了(不要下载官方的demo去跑,老是提示你验签失败,这个代码还是比较新的)

坑1: request.setNotifyUrl(“http://365w51z250.zicp.vip/ZhiFuBao/callback”);

这个参数一定是放在request中不是setBizContent这样

坑2:回调地址是post请求,此地址必须支持外网可访问,

以上代码实现的是:请求demo地址会在d盘生成一个二维码,用沙箱买家账号扫这个二维码,付款成功后支付宝回调callback方法,自己的业务逻辑就写在这个callback里面了。有问题咨询15668316593,共同探讨。第一次写哈哈。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。