支付宝付款码支付接入流程。
官方文档地址: 小程序文档 - 支付宝文档中心
接入前提:
去控制台申请appId、应用私钥、支付宝公钥(注意不是应该公钥)、环境区分(有沙箱和正式环境区分)
代码贴图:
service代码
实现类方法
代码如下:
@Service
@Slf4j
public class AliPayServiceImpl implements AliPayService {
// 支付宝网关名、partnerId和appId
@Value("${ali.pay.openApiDomain}")
public String openApiDomain;
//public String mcloud_api_domain = "http://mcloudmonitor.com/gateway.do";
// public String pid = "";
@Value("${ali.pay.appId}")
public String appId;
// #RSA私钥、公钥和支付宝公钥
@Value("${ali.pay.privateKey}")
public String privateKey;
//对应支付宝公钥
@Value("${ali.pay.alipayPublicKey}")
public String alipayPublicKey;
/**
* 支付宝付款码支付
*
* @param payInfoVo
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public ResponseWrapper aliPay(PayInfoVo payInfoVo, String ordNo) throws AlipayApiException, InterruptedException {
AlipayClient alipayClient = new DefaultAlipayClient(openApiDomain, appId, privateKey, "json", "GBK", alipayPublicKey, "RSA2");
AlipayTradePayRequest request = new AlipayTradePayRequest();
Map<Object,Object> map = new HashMap<>();
map.put("out_trade_no", ordNo);
map.put("total_amount", payInfoVo.getMoney());
//标题 必填
map.put("subject", "订单付款");
map.put("scene", "bar_code");
map.put("auth_code", payInfoVo.getAuthCode());
Gson gson = new Gson();
String json = gson.toJson(map);
request.setBizContent(json);
Alipay