微信支付

本文详细介绍如何在微信开放平台上注册并获得微信支付能力,包括商户系统的配置步骤、支付流程及关键API使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


微信支付


一、在微信开放平台上注册


Pasted Graphic 2.tiff

注册步骤:

1.首先在微信开放平台上注册,在账号中心填写开发者资质审核申请,等待审核通过。

2.在管理中心注册应用,如果应用需要支付,则需填写企业资质、经营类目、结算账户

Pasted Graphic 9.tiff

审核通过后,会在你的邮件里获取商户号:


商户.png

3.商户登录商户平台,填写结算账户;

4.在线签署《微信支付服务协议》

5.获得微信支付能力


Pasted Graphic 1.tiff


记住应用AppID和AppSecret,还有前面微信支付商户号,API秘钥在商户平台获得,AppID在客户端应用中会使用,AppSecret和微信支付商户号、API秘钥在服务器端使用

Pasted Graphic 10.tiff



二.微信支付流程


chapter8_3_1.png

商户系统和微信支付系统主要交互说明:

步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。

步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。

步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appIdpartnerIdprepayIdnonceStrtimeStamppackage。注意:package的值格式为Sign=WXPay

步骤4:商户APP调起微信支付。api参见【app端开发步骤说明

步骤5:商户后台接收支付通知。api参见【支付结果通知API

步骤6:商户后台查询支付结果。,api参见【查询订单API


三.微信配置


微信支付文档官方网址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1


1.下载SDK,微信支付SDK1.6.2包含:WXApiObject.h、WXApi.h、WechatAuthSDK.h、libWeChatSDK.a四个文件,将这4个文件导入到项目中

Pasted Graphic 6.tiff


2.修改配置

2.1 添加依赖

Pasted Graphic 7.tiff


2.2 修改info.plist

Pasted Graphic 8.tiff


2.3 真机调试时,需要在build setting里修改bitcode为NO

Pasted Graphic 11.tiff



四.在应用中调用


1. 注册APPID

商户APP工程中引入微信lib库和头文件,调用API前,需要先向微信注册您的APPID,代码如下:

[WXApi registerApp: @"wxb0bc3dc898cc0298" withDescription: @“demo 2.0”];//记得 用自己appid替换

2、调起支付

商户服务器生成支付订单,先调用【统一下单API】生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是客户端APP调起微信支付的关键代码:

PayReq *request = [[[PayReq alloc] init] autorelease];

request.partnerId = @"10000100";

request.prepayId= @"1101000000140415649af9fc314aa427";

request.package = @"Sign=WXPay";

request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";

request.timeStamp= @"1397527777";

request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";

[WXApi sendReqrequest];

注意:该sign生成字段名列表见调起支付API

3、支付结果回调

照微信SDK Sample,在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意 一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:

            -(void)onResp(BaseResp*)resp{

  if ([resp isKindOfClass[PayResp class]]){

      PayResp*response=(PayResp*)resp;

      switch(response.errCode){

          case WXSuccess

                      //服务器端查询支付通知或查询API返回的结果再提示成功

                      NSlog(@"支付成功");

                      break;

                      default

                      NSlog(@"支付失败,retcode=%d",resp.errCode);

                      break;

                  }

                  }

                } 

            

回调中errCode值列表:

名称

描述

解决方案

0

成功

展示成功页面

-1

错误

可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。

-2

用户取消

无需处理。发生场景:用户不支付了,点击取消,返回APP










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值