说明:
在很多场景中都会需要通过alipay.trade.create接口生成一笔支付订单,然后通过JS唤起收银台支付,例如扫码点菜等。
需要注意的点:
交易状态必须以异步通知或查询接口为准,异步通知规则可以参考【请点击】。
create接口demo:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", TenAlipayConfig.app_id,TenAlipayConfig.merchant_private_key,"json","GBK",TenAlipayConfig.alipay_public_key,"RSA2"); AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); request.setBizContent("{" + "\"out_trade_no\":\"20180320144630111\"," + "\"total_amount\":0.01," + "\"discountable_amount\":0.01," +//可打折金额 "\"subject\":\"测试\"," + "\"buyer_id\":\"2088712969xxxxxx\"," + "\"store_id\":\"123456\"," +//外部门店编号,此参数会影响优惠券的核销 "\"timeout_express\":\"90m\"," + "\"goods_detail\":[{" + "\"goods_id\":\"wuhuo1996\"," +//商品编码,此参数会影响单品券的核销 "\"goods_name\":\"ipad\"," + "\"quantity\":1," + "\"price\":0.01" + "}]," + "\"extend_params\":{"+ "\"sys_service_provider_id\":\"208861191743xxxx\""+//此参数未返佣必填参数,2088开头 "}" + "}"); AlipayTradeCreateResponse response; try { response = alipayClient.execute(request); if(response.isSuccess()) System.out.println("调用成功"+response.getBody()); else System.out.println("调用失败"+response.getBody()); } catch (AlipayApiException e) { e.printStackTrace(); }finally { }
唤起收银台demo:
如果大家还有什么疑问欢迎帖子下面跟帖追问吐槽