APP接入微信支付步骤,及遇到的问题

首先,明确一点: APP微信支付和公众号微信支付完全是两个不同渠道,二者没有关联,不要混用。APP微信支付是指在APP内集成微信支付的SDK,呼起微信来完成支付;公众号支付是指在公众号内,或者带有微信openid的页面内,调用微信公众号的接口完成页面上的支付。

这里只说下APP上接入微信支付的步骤。

1. 到微信开放平台上申请开发者帐户,并且申请开通微信支付。经过一系列流程,开通会有邮件,得到对应的商户平台帐号和密码。其实商户平台就是用来跟财付通结算的这一套。

2. 登录商户平台,配置密钥key。这里需要管理员短信验证码来下载证书安装后,方可配置。

3. 集合以下需要用到的信息:
(1) 开放平台APPID
(2) 商户号MCHID
(3)商户密钥key

4.  后台向微信使用统一下单,主要为获取prepay_id。

5. 组装如下参数:
$arr_data = array(
'appid'=>' wx1234567890 ',
' partnerid '=>' 1234567890 ',
' prepayid'=>'wx2015120815310154e64e5f5d0154442849',
'noncestr'=>'4eqvujs25l3x92r9loiq4x6b3pklspsk',
'timestamp'=>1449559861,
'package'=>'Sign=WXPay',
);
noncestr为随机字符串,timestamp为时间戳,package为固定的 Sign=WXPay, prepayid为上一步获取到的prepay_id,注意这里的key值不能写错,注意大小写,特别注意:统一下单返回的是prepay_id,这里的key是prepayid,没有下划线,千万不要用错。

6.  按文档里的签名算法,对 $arr_data 做签名。首先对参数按字典排序,拼成成url格式的字符串:
$str_data = "appid= wx1234567890 &noncestr=4eqvujs25l3x92r9loiq4x6b3pklspsk&package=Sign=WXPay&partnerid= 1234567890 &prepayid=wx2015120815310154e64e5f5d0154442849&timestamp=1449559861&key="
再把商户的密钥key拼接在后, $str_data = $str_data . $key
对 $str_data 做 md5 运算,并转换成大写:  $sign = toupper(md5($str_data))

注意:sign必须按这个算法重新生成,不能用统一下单时得到的sign。其实说白了,sign就是为了让每个请求防重复,因此它是跟请求相关的,由请求参数计算出来的。不能复用。

7. 将如下参数返回给 APP,APP拉起微信支付:
$arr_data = array(
'appid'=>' wx 1234567890 ',
' partnerid '=>' 1234567890 ',
' prepayid'=>'wx2015120815310154e64e5f5d0154442849',
'noncestr'=>'4eqvujs25l3x92r9loiq4x6b3pklspsk',
'timestamp'=>1449559861,
'package'=>'Sign=WXPay',
'sign'=> ' 2835D90ACA9E2C7879A116E182CE5722 '
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值