商城转账到卖家账户的支付宝方案:支付宝单笔转账

    最近在做一个电子商务的项目,刚接手这个项目时发现好多问题,就拿转账来说,后台没有直接转账到商家账户,需要到银行柜台转账,感觉这样的设计太失败了,不说几万人用,就是几千人,一天也有300多号人的账务需要处理。一个一个的转账,感觉太不可思议了。经过改良由于与银行直接对接的成本比较高,就决定使用支付宝的单笔转账功能。

支付宝的集都不用多说了,官方的文档比较详细:


下面就谈一谈如何集成到商城后台中通过一个个审核按钮通过,直接转账到对方的账户。省了很多的麻烦。

在审核的按钮控制代码中,添加如下代码,并且取到相应的值:

 AlipayConfig.appid //支付宝APPID;

// 支付宝的公钥,无需修改该值
AlipayConfig.public_key:

// 商户的私钥

AlipayConfig.private_key:

初始化:AlipayClient 
AlipayFundTransToaccountTransferRequest 转账api	

AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.serverUrl, AlipayConfig.app_id,
						AlipayConfig.private_key, "JSON", "utf-8", AlipayConfig.public_key);
			
				AlipayFundTransToaccountTransferRequest request1 = new AlipayFundTransToaccountTransferRequest();
	JsonObject object=new JsonObject();
				object.addProperty("out_biz_no", withdrawId+DateUtils.currentDatetime());
				object.addProperty("payee_type", "ALIPAY_LOGONID");
				object.addProperty("payee_account", "账户");
				object.addProperty("amount", 0.1);
				object.addProperty("payer_show_name", "转账公司的名称");
				object.addProperty("payee_real_name", "实名");
				object.addProperty("remark", "");
				request1.setBizContent(object.toString());	
			   AlipayFundTransToaccountTransferResponse response = alipayClient.execute(request1);
			  String string = response.getBody().toString();
				if(response.isSuccess()){
					
				System.out.println("调用成功");
				} else {
				System.out.println("调用失败"+string);
				formMap.put("withdraw_id", withdrawId);
				formMap.put("examine_state", 3);
				formMap.put("examine_season", examineSeason);
				formMap.put("update_time", DateUtils.currentDatetime());
				formMap.put("update_person", Common.findUserSessionId());
				formMap.update();
				returnMoney(withdrawId);  //退款至钱包
			}

在这里需要注意的是,如果实名和支付宝账号不一致,会出现40004:

如果出现40006,是你没有申请单笔转账的权限:

如下图:签约申请即可






猜你喜欢

转载自blog.csdn.net/qq_35703234/article/details/70145929