.NET接入UnionPay银联支付(一)手机wap支付
最近呢,比较忙,公司在接入银联全渠道支付,博主接手的wap支付,发表一下博主在接入的时候遇到的坑和注意事项,方便大家学习接入,爬坑的路上更顺利一点~

开发步骤
1. 以表单的方式组装要发送给银联全渠道系统的数据对象(包括IC卡交易信息域,VPC交易信息域,风控信息域等各域)。每个域填写方法可参考文档开发包中接口文档。
2. 将组装好的数据排序好并用&连接后签名,生成signature字段,可使用插件包提供的方法“SDKUtil.sign(未签名报文, 报文字符集);”具体签名机制请参照第8章节。可通过调用插件包提供的签名方法来完成签名。
3. 把所有要发送给银联全渠道系统的域包括signature和signMethod,组成表单以POST方式送给银联全渠道系统前台交易的地址。
4. 交易完成后,银联全渠道系统将把交易结果分别返回通知到商户通的前台应答地址和后台应答地址上,商户接收到交易通知后可分别调用“SDKUtil.convertResultStringToMap(应答报文);”方法进行应答报文解析,和“SDKUtil.validate(应答报文, 报文字符集)”方法进行签名验证。
一.证书坑
官方在测试的时候给了一个测试证书700000000000001_acp.pfx,这个证书我在测试的时候无法获得私钥。
代码1
错误:无法获得指定的程序类型错误
解决方案:换台机器试试...至今没有解决。
二.参数错误
需要的参数:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
param["version"] = version;//M 版本号param["encoding"] = encoding;//Oparam["certId"] = UnionpayCertUtil.GetSignCertId(); //证书IDparam["bizType"] = bizType;//Mparam["accessType"] = accessType;//Mparam["merId"] = merId;//Mparam["signMethod"] = signmethod;param["channelType"] = "08";param["frontUrl"] = "http://localhost:57510/data.core/UnionPay/api.ashx";param["backUrl"] = "http://localhost:57510/data.core/UnionPay/api.ashx";param["orderId"] = serialID.ToString();//Mparam["txnTime"] = DateTime.Now.ToString("yyyyMMddHHmmss");//Mparam["txnAmt"] = (payfee * 100).ToString("#");//M //用户根据需求可直接填写param["txnType"] = "01";//Mparam["txnSubType"] = "01";//Mparam["currencyCode"] = "156"; |
如果你遇到了下面的错误,请根据上面的参数检查一下你的参数是否正确,是不是缺什么参数,注意你的回调地址,请确保url的正确性。
1.没有付款就直接跳至测试接口

2.直接跳转400的页面

支付成功后银联的服务器会回调你的backurl,查询是否支付成功。
最后奉上银联的sdk包,你们会用得到的
sdk.rar
原文地址:http://www.lorna.com.cn/Articles/Index/c11d1b5c-20a1-4b03-bb74-639241ca89f2
.NET接入UnionPay银联支付(一)手机wap支付的更多相关文章
- 支付宝支付之扫码支付(电脑网站支付)、H5支付(手机网站支付)相关业务流程分析总结
前言 在上一篇文章<微信支付之扫码支付.公众号支付.H5支付.小程序支付相关业务流程分析总结>中,分析和总结了微信支付相关支付类型的业务流程,这里作为与微信支付平起平坐不相伯仲的支付宝支付 ...
- 黄聪:微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付
一.首先先确定H5支付权限已经申请! 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB ...
- 微信支付之手机H5支付实践
最近项目中支付部分涉及到微信支付,使用的是h5支付,官方文档中是没有demo的,所以摸着石头过河,将踩过的坑记录如下. 一 应用场景 H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前 ...
- 微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付
服务项目 新手技术咨询 企业技术咨询 定制开发 服务说明 QQ有问必答 QQ.微信.电话 微信开发.php开发,网站开发,系统定制,小程序开发 价格说明 200元/月 1000/月 商议 ...
- 手机网站支付如何接入支付宝简易版支付功能PHP版
接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台 2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的 ...
- 用MVC做支付宝手机网页支付问题
支付宝支付接口手机网页支付 从官网扒下来的demo阿里做得还是相当不错的,只要参数改正确了基本上都是能跑通,WebForm的没什么大问题,这次要讲的主要是几个要注意的问题,因为是用MVC来做. 1.要 ...
- 支付宝WAP支付接口开发(Node/Coffee语言)
此博客不更新很久了, 更新的文档在这, 有兴趣到这里围观: http://neutra.github.io/2013/%E6%94%AF%E4%BB%98%E5%AE%9DWAP%E6%94%AF%E ...
- 支付宝WAP支付接口开发
支付宝WAP支付接口开发 因项目需要,要增加支付宝手机网站支付功能,找了支付宝的样例代码和接口说明,折腾两天搞定,谨以此文作为这两天摸索的总结.由于公司有自己的支付接口,并不直接使用这个接口,所以晚些 ...
- 【转】支付宝WAP支付接口开发
支付宝WAP支付接口开发 因项目需要,要增加支付宝手机网站支付功能,找了支付宝的样例代码和接口说明,折腾两天搞定,谨以此文作为这两天摸索的总结.由于公司有自己的支付接口,并不直接使用这个接口,所以晚些 ...
随机推荐
- 7 个最佳的 Java 框架
毫无疑问,Java是目前最需要的编程语言之一.在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作. 根据RebelLabs,也是在线Java用户组(虚拟JUG)的媒体盟 ...
- HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK阅读笔记
HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK 论文地址:https:/ ...
- (6)进程---Event事件
# 阻塞事件 : e = Event()生成事件对象e e.wait()是给程序加阻塞 , 程序当中是否加阻塞完全取决于该对象中的is_set() [默认返回值是False] e.wait(2) 传参 ...
- [Spring] ClassPathXmlApplicationContext类
1. 该类在package org.springframework.context.support包下. 该包在4.0.1中封装在spring-context-***.jar中. 其无参构造函数的文档 ...
- 如何使用Web3.js API 在页面中进行转账
本文介绍如何使用Web3.js API 在页面中进行转账,是我翻译的文档Web3.js 0.2x 中文版 及 区块链全栈-以太坊DAPP开发实战 中Demo的文章说明. 写在前面 阅读本文前,你应该对 ...
- 在mk/rte.app.mk 256行加echo $(O_TO_EXE_DO)查看GCC参数
在mk/rte.app.mk 256行加echo $(O_TO_EXE_DO)查看GCC参数,如:
- php实现队列
<?php //双向队列的实现 class DoubleEndedQueue{ public $elements; public function __construct(){//析构函数,创建 ...
- 深入解析 composer 的自动加载原理 (转)
深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...
- PAT Rational Sum
Rational Sum (20) 时间限制 1000 ms 内存限制 65536 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 Given N ration ...
- python 小练习 6
几种不同的方法写fibonacci 刚学Python不久的的C程序员: 01 def fib(n):#{ 02 if n<=2 : 03 return 1; 04 else: 05 return ...