1.当我听到经理要让我在混合app支付中接入微信支付,和支付宝支付的时候,我是一脸懵逼的,甚至持怀疑态度,因为官网文档上面并没有明确说明支不支持。公司之前也没有这样接入过,我看文档上面只有Andriod和ios的sdk,开始我以为这个Andriod和ios是指开发语言,如果真的是那肯定接入不了了。还好支付宝有在线客服,在线技术支持,经过咨询之后才知道原来指的是系统环境。后来技术告诉我,只要你们的Huilder能狗唤起支付宝的收银台,就可以对接app支付,我瞬间就来了信心。在度娘的支持下,终于被我找到了方法。
(1)
[首先要在manifest.json里SDK配置选项里先勾选上 微信支付 或者支付宝支付,appid 就是申请下来的支付宝,或者微信的appid,选择哪一个,就填写对应的就可以了
(2)
这里是前端调用支付宝和微信的方法,首先获取通道,然后传入支付宝和微信返回的订单信息就可以了
(3)
一. 调用支付宝,微信的统一下单接口生成订单信息,直接返回给前端就可以了
<1>支付宝
参考链接:https://docs.open.alipay.com/api_1/alipay.trade.app.pay/
代码实例:
public static String unifiedOrder(String orderId, String amount) {
Map<String,Object> resultMap= new HashMap<>();
//实例化客户端
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:AliPaymentUtils.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
model.setBody("缴费");
//商品的标题/交易标题/订单标题/订单关键字等。
model.setSubject("缴费");
//商户网站唯一订单号
model.setOutTradeNo(orderId);
//该笔订单允许的最晚付款时间,逾期将关闭交易 30分钟
model.setTimeoutExpress(TIMEOUT_EXPRESS);
//订单总金额,单位为元,精确到小数点后两位,取值范围
model.setTotalAmount(amount);
//销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY
model.setProductCode("QUICK_MSECURITY_PAY");
//放入请求的参数对象
request.setBizModel(model);
//回调地址
request.setNotifyUrl(NOTIFY_URL);
try {
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
//