关于小程序 接入 支付宝支付 微信支付
Posted 道系女孩~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于小程序 接入 支付宝支付 微信支付相关的知识,希望对你有一定的参考价值。
有做过H5的支付 最近在做小程序的支付相关 就趁机来整理一波叭
首先在这里我们使用的是onemipay
先在composer下载如下类包
然后 我们接下来 写微信支付 支付宝支付相关,可以把这些方法封装一下。我们先讲接入微信支付
1:首先具当前小程序的对应的 APP_ID,SECRET,MCH_ID,API_KEY,记得登录商家后台 添加回对应的 授权回调目录
这里先构造支付网关,项目里的H5支付,小程序支付,APP,支付都可以根据此来延伸开。这里目前只有支付宝支付 微信支付两种方式
2:注意 小程序支付使用的是WechatPay_Js支付方式,在这里设置好 app_id ,mch_id _api_key等信息,对啦 再次还有一个微信回调地址 不要忘记设置哦
3:接下来就是支付宝支付,构造对应网关,设置相关信息,因为是在小程序中进行支付宝支付,不能直接跳转到支付宝,所以在这里是生成相应支付链接,到支付宝进行支付。此有一点是 ,由于项目中链接过长(请求参数/用户标识token) ,可进行一次短连接转化,这一部分可放在前端处理,也可以放在后端进行处理,根据项目实际情况来定。
支付接口贴代码
/** * 支付 * @param Request $request */ public function pay(Request $request) if (!$request->has('order_id')) return new TheParameterIsEmpty(); $au_id = $request->get('au_id'); $orderId = $request->input('order_id'); $payGenre = $request->input('pay_gateway'); $WeChat_type = $request->input('WeChat_type', 2);//默认 JSAPI $return_url = $request->input('return_url', ''); $order = ActivityOrder::getActivityOrder($orderId, $au_id); if (!$order instanceof ActivityOrder) return response_json(11029, config('code.11029')); $ActivityMarketing = ActivityMarket::getActByAmId($order->am_id); if (!$ActivityMarketing instanceof ActivityMarket) return response_json(11010, config('code.11010')); if ($ActivityMarketing->join_stint != 0 && $ActivityMarketing->join_stint <= $ActivityMarketing->join_stint_num) return response_json(11011, config('code.11011')); ActivityOrderRepository::setPayGenre($order, $payGenre); $gateway = PayGateFactory::getPayGate($payGenre); try return $this->getPayParameter($order, $gateway, $return_url ,$WeChat_type); catch (Exception $exception) Log::error($exception); return response_json(500, '服务器错误'); /** * @param ActivityOrder $order * @param GatewayInterface $gateway * @param $return_url //支付宝网页支付成功跳转地址 * @param $WeChat_type 2:JSAPI 3:H5 * @return \\Illuminate\\Http\\JsonResponse */ protected function getPayParameter(ActivityOrder $order, GatewayInterface $gateway, $return_url, $WeChat_type) $pay_type = $gateway instanceof AliPay ? 'AliPay' : 'WeChatPay'; $parameter = 1; if ($pay_type == 'AliPay') $parameter = 2;//支付宝网页支付 elseif ($pay_type == 'WeChatPay') $parameter = $WeChat_type; $gateway->getGateway($parameter); $gateway->setNotifyUrl('shop-ay/ny'); if ($pay_type == 'AliPay') $gateway->setReturnUrl($return_url); $gateway->setGatewayOrder($order); // if ($pay_type == 'WeChatPay') $gateway->setTimeExpire(date('yymdHms', time()+300)); $data = $gateway->response(); return response_json($data);
最后如果成功的话 请求返回应该是
注意:前端在对应调微信支付时 字段顺序要后对应后端加密的顺序一致哦 不然会出问题的
好啦 就到此为止啦
以上是关于关于小程序 接入 支付宝支付 微信支付的主要内容,如果未能解决你的问题,请参考以下文章