APP微信支付

来源:互联网 发布:鹰卫浴淘宝店铺 编辑:程序博客网 时间:2024/04/30 12:25

1、在集成微信支付之前。首先要做的准备
1.1 申请微信开放平台(需要开通开发者资质 300元);
1.2 开通微信商户平台需要申请微信支付功能
1.3 在微信开放平台上申请APP应用(最好android应用和ios应用一起申请);
1.4 在开放平台上申请的应用通过之后。会返回一个AppId和一个AppSecret
1.5 打开微信商户平台。在API安全中设置API密钥(就是开放平台的AppSecret);
2、正式集成
2.1 安卓端在manifest中配置wxPayEntryActivity

  <!-- 微信支付必须使用的 -->        <activity            android:name="com.lhdz.activity.wxapi.WXPayEntryActivity"            android:exported="true"            android:theme="@android:style/Theme.Translucent.NoTitleBar"            android:launchMode="singleTop" />

2.2 在lib下添加微信支付jar包(注意如果使用友盟分享的时候也需要导入友盟的jar包。这个时候会起
冲突,因为umeng的微信jar中包含了微信支付需要的类。这个时候我们可以把原生的微信支付jar包去掉。直 接使用友盟的jar是一样的);
2.3 微信支付需要在真正支付前获取prepay_id
URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder(接口链接 );
必须的请求参数:
appid 公众账号ID
body 商品描述
is_subscribe 是否订阅(y)
mch_id 商户号
nonce_str 随机字符串
notify_url 通知地址
out_trade_no 商户订单号
spbill_create_ip 终端IP
total_fee 总金额
trade_type 交易类型
sign (拼接以上参数进行MD5加密并转大写,具体加密方式官方文档中有);

String xmlstring = toXml(packageParams);//把组织好的统一下单参数转换成XML格式String toIso = new String(xmlstring.toString().getBytes(),                    "ISO8859-1");// 如果中文的话就会出错,转一下码

2.4 在获取到prepay_id之后,来重新组织订单详情;
需要的必须参数官方文档中已经给出(组织时按照ASCII码升序,统一下单也是一样)
使用微信支付payreq对象来传递参数,在类WXPayEntryActivity实现onResp函数,支付完成后,微信 会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码
我在这里使用了安卓中广播的方式进行返回状态码的处理。
2.5只需要在支付页面调用以下代码就可以集成成功

int wxPrice = (int) (Float.parseFloat(price) * 100);// 微信支付单位为分。所以在此处需要转换MyWeChatPay weChatPay = new MyWeChatPay(this,     szOrderValue,goodsName, String.valueOf(wxPrice));weChatPay.registerWxAndPay();// 注册微信weChatPay.new GetPrepayIdTask().execute();// 生成预支付ID;

代码链接:
(http://download.csdn.net/detail/li530893850/9457912)

1 0
原创粉丝点击