支付宝接入程序
alipay.trade.pay(统一收单交易支付接口)
商户开通支付能力(申请一个沙箱环境),并为环境生成签名
登录蚂蚁金服 开放平台:https://open.alipay.com/platform/home.htm
创建应用,类型是:网页&移动应用
设置应用的RSA 等各项参数,界面如下:
配置应用网关,授权回调地址(授权地址为url,部署机需做内网穿透)
http://user.balabalabala.com/a/pay/successDeal_alipay
获取公钥,私钥,配置到工程中,作为调用的参数验证
生成调用参数,配置到url之后,调用支付宝网关,发出请求
调用方法:
alipay.trade.app.pay
参数列表:
https://docs.open.alipay.com/api_1/alipay.trade.pay
App调用支付接口:
alipay.trade.app.pay
getAlipayInfo
生成参数:
app_id=2017070607665142&biz_content=%7B%22out_trade_no%22%3A%22560106591622266880_326407336442855424%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%22buyGoods%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fuser.jbmzy.cn%2Fapi%2Fa%2Fpay%2FsuccessDeal_alipay&sign_type=RSA2×tamp=2019-03-26+14%3A24%3A09&version=1.0&sign=RtrA%2FZ5laUm9E%2FKc8hBvUuwN7Aflmd8GYJd2jYAdgmdTGgh9U20P4aIWxLHTFQaSVlDTMp%2Bwfc%2FBFq1vAslRl2M1HeA%2FxUGgVVtpqpedE96mC3OZm19S3Rsv699Kw8vFimJjaJVSpe%2FtME5oTqsyN63x3SW41YLurTPL8I%2Fi4L74nxDJKqpa4HkXYN3r40KKQGMC90uiRKt8rONjOh5udLpsKNtBJpvoRp%2Be9K1L%2FizoAXnJAXP0RbyNYbvyAknJtCGIwHzLcqzMK0blTX4AOvo6Mfchv4tiPwjfFoiiJ9sW6Cs63BM3%2BaqxBPBmCKj5inqUJX%2BU%2FnH7kgzE0Qe4VQ%3D%3D
将此url发送给https://openapi.alipay.com/gateway.do
支付宝服务器将把支付结果返回给授权回调地址(所以需要把被回调机器做内网穿透)
若支付成功,修改订单状态
标题对接支付宝退款:
使用开放平台SDK接入
alipay.trade.refund(统一收单交易退款接口)
AlipayClient alipayClient = new DefaultAlipayClient(支付宝网关, 沙箱的APP_ID,应用私钥, “json”, 编码格式utf-8, 支付宝公钥, “RSA2”);
创建退款请求对象
AlipayTradeRefundApplyModel refundApplyModel = new AlipayTradeRefundApplyModel();
塞入请求参数
refundApplyModel.setTradeNo(orders.getTransactionId());
refundApplyModel.setRefundAmount(refundmnetDoc.getAmount().toString());
refundApplyModel.setRefundReason(“商品退款”);
实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.refund
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
发送请求
AlipayTradeRefundResponse response = alipayClient.execute(request);
根据返回值进行后续处理