简书链接:http://www.jianshu.com/writer#/notebooks/4059411/notes/4121325
【微信开放平台:
微信开放平台
主要面向App开发者 通常前提是拥有成熟的应用程序 之后通过开放平台 将内容分享至朋友圈 发送给某个微信好友.
微信公众平台
强调信息流 既可以向微博一样主要推送内容 也可以像10086一样 根据用户发来的消息进行智能回复 后台可以实现某些功能.】
资料参考:
1:点击链接:https://pay.weixin.qq.com/wiki/doc/api/index.html 然后点击APP pay,看官网demo和官方文档
2:APP端开发步骤说明:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
内容解析:
前提:wx7562ceaf88f412XX,在项目中添加url schemes; 客户端需要填写你申请的appid,将此填写到schemes里
同时需要写微信回调:
另外这个回调写没写
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}
流程解释:
1:2016-05-25 15:20:04.950 和服务器商定
2:<==返回数据:{
"p_a" = wx7562ceaf88f412XX;
"p_b" = 1295156501;
"p_c" = wx2016052515200565ab26e54701943XX;
"p_d" = cdf28f8b7d14ab02d12a2329d71e40XX;
"p_e" = 14641608XX;
"p_f" = "Sign=WXXXy";
"p_g" = c6339d989155ba10d4837156467ecXX;
}
3.1:
3.2:
//换成进入支付页面,后台返回获取---》微信注册APPID
[WXApiregisterApp:resultData[@"p_a"]];
if(![self.paymentChannelenvironmentSupportToPay])
{
return;
}
3.3:本地存储
3.4把信息发送到微信平台:sendreq:
参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
4.1:[WXApihandleOpenURL:notifInfo[CMGE_TAG_URL]delegate:self];
sourceApplication = "com.tencent.xin";
4.2》:
url = "wx7562ceaf88f412XX://pay/?returnKey=(null)&ret=-2";
switch(resp.errCode)
{
caseWXSuccess:
{
"微信支付成功!";
}
break;
caseWXErrCodeCommon:
{
[@"微信支付异常!"];
}
break;
caseWXErrCodeUserCancel:
{
"用户取消微信支付!";
}
break;
caseWXErrCodeSentFail:
{
"微信支付发送失败!";
}
break;
caseWXErrCodeAuthDeny:
{
@"微信支付验证失败!"
}
break;
caseWXErrCodeUnsupport:
{
"不支持的微信支付类型!
}
break;
default:
"微信支付未知异常!";
break;
、、--------------案例交互时序图
以下是交互时序图,统一下单API、支付结果通知API和查询订单API等都涉及签名过程,调用都必须在商户服务器端完成。如图8.6所示。
商户系统和微信支付系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。
步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
步骤4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】
步骤5:商户后台接收支付通知。api参见【支付结果通知API】
步骤6:商户后台查询支付结果。,api参见【查询订单API】