原来的:
文档中心:
,
场景介绍
适用于在手机APP中集成微信支付功能的商户。
商户APP调用微信提供的SDK来调用微信支付模块,商户APP会跳转微信完成支付,支付完成后会跳转回商户APP,最后显示支付结果。
目前微信支付支持以下手机系统:IOS(苹果)、(安卓)、WP()。
交互细节如下:
步骤1:用户进入商户APP,选择商品下单,确认购买,进入支付阶段。商户服务后台生成支付订单,签字后将数据传输给APP。以微信提供的DEMO为例,见图8.1。
步骤2:用户点击发起支付操作,进入微信界面,开通微信支付,出现支付确认界面,如图8.2所示。
步骤3:用户确认收款人及金额,点击立即支付,出现输入密码界面,用户可以选择用零钱或银行卡支付(见图8.3)。
图8.1 商户APP界面示例
图8.2 跳转微信支付
图8.3 用户确认付款
步骤4:输入正确的密码后,支付完成,用户微信出现支付详情页面。参见图8.4。
步骤5:跳转回商户APP,商户APP根据支付结果展示订单处理结果。参见图8.5。
图8.4 支付成功提示页面
APP开发步骤
iOS开发关键点
以下项目开发环境以.0,运行环境为IOS7.0为例,说明其开发中所需的操作。
1. 项目设置
商户申请在微信开放平台开发APP应用后,微信开放平台会为该APP生成一个唯一ID。在微信中打开项目,在项目属性中将URL设置为您的。参见图8.7中红色位置。
图 8.7
2. 注册
在商户APP项目中引入微信lib库及头文件,调用API前需要先向微信注册,代码如下:
[ :@"" :@"演示 2.0"];
3. 开始付款
商户服务器生成支付订单,先调用【统一订单API】生成预付订单,然后签名并传参给APP发起支付,以下是调用微信支付的关键代码:
* = [[[ ] 初始化] ];
。 =@“”;
.= @"7";
. = @"符号=";
.= @"";
.= @"";
.符号=@“”;
[ : ];
注意:有关标志生成的字段名称列表,请参阅调用付款 API
4.支付结果回调
根据微信SDK,在类实现函数中,支付完成后微信APP会返回给商户APP并回调该函数。开发者需要在该函数中接收通知,判断返回的错误码,如果支付成功则在后台查询支付结果并向用户展示实际支付结果。注意一定不能以客户端返回的结果作为用户支付的结果,以服务端收到的支付通知或者查询API返回的结果为准。代码示例如下:
-(void)onResp:(BaseResp*)resp{ if ([respisKindOfClass:[PayRespclass]]){ PayResp*response=(PayResp*)resp; switch(response.errCode){ caseWXSuccess: //服务器端查询支付通知或查询API返回的结果再提示成功 NSlog(@"支付成功"); break; default: NSlog(@"支付失败,retcode=%d",resp.errCode); break; } } }
回调中的值列表:
名称 描述 解决方案
成功
显示成功页面
-1

错误
可能原因:签名错误、未注册、项目设置不正确、注册的与设置的不匹配、其他异常等。
-2
用户取消
无需任何操作。场景:用户不想支付,点击取消,返回APP。
发展要点
1. 背景设置
商户在微信开放平台申请开发应用后,微信开放平台会为APP生成唯一ID。由于需要保证支付安全,商户应用包名、应用签名需要与开放平台进行绑定,设置完成后才能正常发起支付。设置界面在【开放平台】中的【管理中心/修改应用/修改开发信息】一栏,如图8.8红框所示。
图 8.8
应用包名:是APP项目配置文件.xml中声明的值,如DEMO中为“net..”
应用签名:根据项目中使用的应用包名和编译,通过签名工具可以生成32位md5字符串。在调试的手机上安装签名工具后,运行即可生成应用签名字符串,如图8.9所示。绿色字符串即为应用签名。签名工具下载地址
图 8.9
2. 注册
将微信JAR包引入到商户APP项目中,调用API之前需要先注册微信账号,代码如下:
= .(,空);
// 将应用程序注册到微信
(“”);
3. 开始付款
商户服务器生成支付订单,先调用统一订单API(详见第7节)生成预付订单,然后签名并传参给APP发起支付,以下是调用微信支付的关键代码:
API;
=新的();
。 =“”;
。 =“”;
.= "7",;
. = "签名=";
.= "9";
.= “”;
.符号 = “”;
API。(要求);
注意:有关标志生成的字段名称列表,请参阅调用付款 API
4.支付结果回调
参照微信SDK,实现net…包路径下的类(包名或者类名不一致会导致回调失败),实现类中的函数,支付完成后微信APP会返回给商户APP并回调该函数,开发者需要在函数中收到通知,判断返回的错误码,若支付成功则去后端查询支付结果然后展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,而是以服务端收到的支付通知或者查询API返回的结果为准。代码示例如下:
(){
如果(resp.()==。){
Log.d(标签,,="+resp.);
.=.(这个);
.(R..);
回调中的值列表:
名称 描述 解决方案
成功
显示成功页面
-1
错误
可能原因:签名错误、未注册、项目设置不正确、注册的和设置的不匹配、其他异常等。
-2
用户取消
无需任何操作。场景:用户不想支付,点击取消,返回APP。
让我分享一下我老师的 AI 教程。不需要任何基础知识!简单易懂!风趣幽默!甚至还有黄段子!希望你能加入我们的 AI 团队!