全新微信支付接口规则(new)(私钥)开发准备

2023-12-09
来源:网络整理

教您开通聚合商家收款码,也称为三合一收款码,支持银行卡/支付宝/花呗/信用卡/微信付款,这个收款码是银联旗下的云闪付APP申请,放下安全!银联云闪付品牌,百分比值得信赖!下面提供云闪付商家收款码的申请全过程给大家!

【云闪付商家收款码 开通全过程视频!】     

               



上面就是云闪付商家收款码的申请全过程 !您学会了吗?     


          

云闪付服务商官网是:ysffws.com,进入云闪付服务商官网可以直接联系上服务商,服务商可以帮助您完成二 次认证,解决申请过程出现的任何问题,是您申请收款码的好帮手哦!~     

   



                  

1. 接口规则

为了在保证支付安全的同时,为商户提供简单、一致、易用的开发体验,我们推出了全新的微信支付接口。 本版本API具体规则请参见接口规则。

2、开发准备 2.1. 设置和配置开发环境

为了帮助开发者调用开放接口,我们提供了JAVA、PHP、GO三种语言的开发库,封装了签名生成、签名验证、敏感信息加解密、媒体文件上传等基本功能(更多语言版本)开发库将在不久的将来提供)。

测试步骤:

1.根据自己的开发语言,选择对应的开发库并构建项目。 具体配置请参考下面链接中的详细说明:

-php(新)(推荐),--(新),适合PHP开发人员。 -go(新),适用于 Go 开发人员。

更多资源请前往微信支付开发者社区(新)搜索查看。

2. 创建加载商户私钥、加载平台证书、初始化的通用方法。

示例代码

3. 根据接口示例代码,替换请求参数后即可发起测试。

阐明:

签名生成 签名验证 敏感信息加解密(私钥)(平台证书)(V3密钥) 2.2. 业务开发配置 2.2.1. 注册应用程序

App接入微信支付,需要先在微信开放平台注册商户App,并注册App开发参数生成。 具体步骤如下:

登录微信开放平台(新),进入【管理中心→移动应用→创建移动应用】;

完成基本信息录入后,商户需要在此步骤提交App对应的下载地址、App官网、App水印、图标等业务信息;

完成平台信息录入,商户需要在这一步提交App和iOS端对应的开发参数,包括iOS端应用的包名、应用签名、ID、链接等;

以上信息全部提交后,App注册完成。 商户可以在【管理中心→移动应用】中选择具体应用,查看该应用以及已获取的接口能力;

获取App后,您需要将其与商户支付进行绑定。 商户可以登录商户平台,进入【产品中心->账户管理】界面进行绑定和管理。 界面如图:

2.2.2. iOS开发要点

由于苹果已经从系统中撤回了查询App的能力,微信无法保证授权凭证能够正确返回给对应的应用。 为此,微信支付强烈要求所有商户尽快升级至.8.6,并让用户及时更新App,否则安全风险将始终存在。 谢谢您的合作!

详细升级指南请参见:升级指南(新)

注意

升级后,请务必按照文档要求完成验证工作,以确保升级成功。

下面以项目开发环境以.0、运行环境为IOS7.0为例来说明其开发时所需的操作。

1. 项目设置

商户申请在微信开放平台开发App应用后,微信开放平台将为该App生成唯一标识。 打开项目,将项目属性中的URL设置为你的。如图图标红色位置所示

2. 注册

商户App项目中引入微信lib库和头文件。 调用API之前,您需要先注册微信。 代码如下:

[ :@"" :@"演示 2.0"];

注意

前端支付发起及SDK回调说明请参见发起支付说明(新增)

2.2.3. 开发要点1.后台设置

商户申请在微信开放平台开发应用后,微信开放平台将为该App生成唯一标识。 由于需要保证支付安全,需要将商户应用包名和应用签名与开放平台进行绑定,设置好后才能正常发起支付。 设置界面在【开放平台】中的【管理中心/修改应用/修改开发信息】栏中,如图红框所示。

应用程序包名:是App项目配置文件.xml中声明的值,如上图中的“”。

应用签名:根据项目的应用包名称和编译用途,签名工具可以生成32位md5字符串。 在被调试手机上安装签名工具后,运行即可生成应用签名字符串,如图8.9所示,绿色字符串为签名。

点击下载签名生成工具(新)

2. 注册

商户App项目引入微信JAR包。 调用API之前,您需要先注册微信。 代码如下:

1final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
2// 将该app注册到微信
3msgApi.registerApp("wxd930ea5d5a258f4f");

注意

前端支付发起及SDK回调说明请参见发起支付说明(新增)

3. 快速访问 3.1. 业务流程图

关键步骤:

第三步:用户下单发起支付,商户可以通过微信支付App订单接口创建支付订单。

商户调用App下单接口后,会有正常返回和异常返回两种情况:

步骤8:商户通过App激活微信支付,并发起支付请求。 有关发起付款的详细说明,请参阅说明。

步骤15-19:用户支付成功后,商户可以通过以下两种方式获取订单状态。

我们通过以下接口通知商户系统用户确认订单信息回调:

方式一:付款结果通知。 用户支付成功后,微信支付会将支付成功结果以回调通知的形式同步给商户。 调用App的订单接口时,需要参数传入商户的回调地址。

方式二:当因网络抖动或问题而无法收到回调通知时,商户也可以主动调用查询订单接口获取订单状态。

3.2. API访问(包括示例代码)

文档展示了如何使用微信支付服务器SDK快速接入支付并完成与微信支付的接口。

注意

3.2.1. [服务器] 应用程序订购

步骤描述:用户在商户App中完成商户选择后,进入支付页面。 商户需要通过后台请求App的订单接口获取预付款ID。

示例代码

重要输入说明:

更多参数、响应详情和错误码请参考App订购API接口文档。

3.2.2. [客户] 电话付款

步骤说明:通过App点餐接口成功获取预付款交易 ID()后,需要调用微信支付收银台

SDK调用需要携带签名(签名涉及的参数为:,,,,,,参数区分大小写)

重要输入说明:

生成规则、响应详情和错误码请参考App支付接口文档。

iOS SDK调用说明 1.发起支付

商户服务器生成支付订单,首先调用App的订单API生成预付费订单,获取后重新签名并传输参数给App发起支付。 以下是激活微信支付的关键代码:

1PayReq *request = [[[PayReq alloc] init] autorelease];
2request.partnerId = @"10000100";
3request.prepayId= @"1101000000140415649af9fc314aa427";
4request.package = @"Sign=WXPay";
5request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";
6request.timeStamp= @"1397527777";
7request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";
8[WXApi sendReq:request]

注意

该标志生成的字段名称列表如调用支付接口所示。

2. SDK结果回调

根据微信SDK,该功能是在类中实现的。 支付完成后,微信App会返回商户App并回调该函数。 开发者需要在该函数中接收通知并判断返回的错误码。 如果支付成功,则到后台查询支付结果,然后显示用户的实际支付结果。 注意,客户端返回的结果不得作为用户的支付。 以服务器收到的支付通知或查询接口返回的结果为准。

代码示例如下:

1-(void)onResp:(BaseResp*)resp{
2if ([respisKindOfClass:[PayRespclass]]){
3 PayResp*response=(PayResp*)resp;
4 switch(response.errCode){
5 caseWXSuccess: //服务器端查询支付通知或查询API返回的结果再提示成功
6 NSlog(@"支付成功");
7 break;
8 default:
9 NSlog(@"支付失败,retcode=%d",resp.errCode);
10 break;
11 }
12 }
13}

回调中的值列表:

名称描述解决方案

-2

用户取消

无需处理。 场景:用户未付款,点击取消,返回App。

成功

显示成功页面

-1

错误

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

SDK调用说明 1. SDK发起支付

商户服务器生成支付订单,首先调用App的订单API生成预付费订单,获取后重新签名并传输参数给App发起支付。 以下是激活微信支付的关键代码:

1IWXAPI api;
2 PayReq request = new PayReq();
3 request.appId = "wxd930ea5d5a258f4f";
4 request.partnerId = "1900000109";
5 request.prepayId= "1101000000140415649af9fc314aa427",;
6 request.packageValue = "Sign=WXPay";
7 request.nonceStr= "1101000000140429eb40476f8896f4c9";
8 request.timeStamp= "1398746574";
9 request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
10 api.sendReq(request);

注意

该标志生成的字段名称列表如调用支付接口所示。

2.支付结果回调

参考微信SDK,实现net...包路径中的类(包名或类名不一致会导致回调失败),实现类中的功能,支付完成后微信App会返回商户App回调该函数,开发者需要在该函数中接收通知并判断返回的错误码。 如果支付成功,则到后台查询支付结果,然后显示用户的实际支付结果。 注意,客户端返回的结果不得作为用户的支付。 以服务器收到的支付通知或查询接口返回的结果为准。

代码示例如下:

1public void onResp(BaseRespresp){
2 if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
3 Log.d(TAG,"onPayFinish,errCode="+resp.errCode);
4 AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
5 builder.setTitle(R.string.app_tip);
6 }
7}

回调中的值列表:

名称描述解决方案

成功

显示成功页面

-1

错误

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

-2

用户取消

无需处理。 场景:用户未付款,点击取消,返回App。

3.2.3. [服务器]接收支付结果通知

步骤描述:当用户完成支付后,微信会通过异步回调的方式通知商户相关支付结果。 商户需要按照文档规范接收处理并返回响应。

注意

特别提醒:商户系统必须对结果通知的内容进行签名验证,并验证通知中的信息与商户侧的信息是否一致,防止数据泄露造成“虚假通知”和财务损失。

更多参数、响应详情和错误码请参考支付结果通知接口文档。

3.2.4. [服务器]查询订单

步骤描述:当商户后台、网络、服务器等出现异常,商户系统未收到支付通知时,商户可以通过订单查询接口验证订单支付状态。

注意

可以通过微信支付订单号和商户订单号查询订单。 两种查询方法返回相同的结果。

需要调用查询接口的情况:

示例代码(微信订单号查询):

示例代码

更多参数、响应详情及错误码请参考微信支付订单号/商户订单号接口文档。

3.2.5. [服务器]关闭订单

步骤描述:当商户订单支付失败时,需要生成新的订单号才能重新发起支付。 下单后必须调用关闭原订单号,避免重复付款。 系统下单后,用户付款超时,系统退出,不再接受,阻止用户继续。 请调用自定义订单接口

注意

示例代码

更多参数、响应详情及错误码请参考平仓订单接口文档。

3.2.6. [服务器]申请交易账单

步骤说明:微信支付每天都会提供交易账单文件,商户可以通过该接口获取账单文件的下载地址。

示例代码

更多参数、响应详情及错误码请参见交易账单支付通知API接口文档

3.2.7. [服务器]下载账单

步骤描述:通过应用交易账单接口获取账单下载地址()后,通过该接口获取对应的账单文件。 该文件包含金额、时间、营销等交易相关信息,供商户查询订单、退款、银行账户到账等。

注意

示例代码

更多参数、响应详情和错误码请参见下载缴费通知API接口文档。

4.常见问题 问:前端启动时微信支付返回=-1如何排查?

答:请根据以下几点进行检查:

调用SDK前检查App返回的订单参数是否正常,是否获取到正确的订单参数;

检查调用SDK签名是否正确,请注意以下几点:

客户端调用()时检查对象赋值的正确性(必要时要求商家提供数据)。 如果后台数据是异步获取的,例如,数据对象是通过异步请求获取的对象: 。 = 数据。; 实际属性值为空;

检查相应的开发配置,包括iOS配置、包名和包签名设置。

Q:App调用“调用支付接口”返回:商户支付订单ID不合法。

A:请确认支付参数字段名称与文档中是否一致。

Q:服务商模式下,调用App下单接口时,返回“特殊子商户商品权限未授权”。

A:应用支付需要单独授权才可以使用。 请前往服务商平台子商户管理找到对应子商户授权服务商App支付权限。

Q:调用App点餐接口时,返回“不匹配”。

A:调用App下单接口前,需要确保子商户号与子商户App存在绑定关系。 请前往服务商平台子商户管理页面进行绑定操作。

分享