之前在做公众号开发过程中有集成过微信的支付功能,但是一些帐号相关的申请与设置都由其他同事弄好后提供过来的,最近APP项目中集成微信和支付宝的功能,从相关接口权限和开发都自己亲自走了一遍,不得不说走了不少转路,今天分享下,希望对大家有所帮助吧
1、微信APP支付功能申请流程
a、打开 https://open.weixin.qq.com/ (微信开发平台)进入商户管理中心,注:这里省去了帐号的注册流程
b、点击移动应用下面的’创建移动应用‘,创建一个新应用
c、创建完成后,新应用便会出现在移动应用列表中,可点击查看按钮,进入应用详情页,如下图1,2所示
(图1)
(图2)
d、APP微信支付接口权限需要申请才能获得,费用300元一次
e、下载微信SDK包,并将自己对应的商户号,APPid,支付密钥,公众号密钥等相关信息填入到WxPay.Config.php中
f、有一点需要特别强调下,公众号证书与APP证书不一样,APP支付接口申请下来后,会由到相关邮件,邮件中登录帐号与密码,证书就在这里下载
2、APP支付宝申请流程(支付宝的管理后台整合了比较多系统,入口不好找到)
a、 打开 https://openhome.alipay.com/platform/manageHome.htm登录支付宝,注:这里省去了帐号的注册流程
b、点击我有开发能力,进入我的应用页面 https://openhome.alipay.com/platform/appManage.htm
c、如图3所示,可以对应用进行管理与创建
(图3)
d、如图4所示,申请应用所需要的接口权限
e、下载支付宝SDK
3、一切申请通过之后,便可以开始接口的开发了
4、我这边讲解的是PHP作为后,给APP端提供支付接口的流程
微信大致流程为:APP端将订单信息提交到后台,后台通过微信统一下单接口到微信去下单,微信端返回相关信息到PHP后台,后台先将订单保存到数据库成功后,返回签名信息给APP端去实现真正的支付
支付宝大致流程为:APP端将订单信息提交到后台,后台通过支付宝规定的签名算法将签名信息返回给APP端,APP端调用支付宝SDK去实现支付
5、下面贴出我在开发过程中用到的代码,不是很规范,但可以借鉴
private function _wxPay($data){
$total_money = 1;
vendor('WxpayAPI.lib.WxPay#Api');
$WxPayApi = new \WxPayApi();
// 商品名称
$subject = '';
$detail="在线支付";
$native="APP";
// 订单号,示例代码使用时间值作为唯一的订单ID号
$out_trade_no = createPayid();
$unifiedOrder = new \WxPayUnifiedOrder();
$WxPayConfig=new \WxPayConfig();
$unifiedOrder->SetBody($subject);//商品或支付单简要描述
$unifiedOrder->SetAppid($WxPayConfig::APPID);//appid
$unifiedOrder->SetMch_id($WxPayC