关于微信证书接口定义问题

hzxrkj 2015-04-09 04:34:46
微信扫码支付接口的撤销接口里有个证书认证 , 认证windows组件版,使用 WeixinPayProxy.dll ,是个组件,只写了 c#版本的样例,
Weixinpayproxylib.weixinpay weixinpay = new weixinpayproxylib.weixinpay();
string version
weixinpay.getversion( out version )
console.writeline( version )

string resule ;
weixinpay.proxy( strparams , '' , out result ) ;
console.writeline( resule ) ;
console.read() ;

我不知道,这个在pb里怎么写,我使用一下写法返回-2,表示无此类

int intValue
integer li_parmadd
oleobject objOle
string ls_ver


objOle = create OLEObject
intValue = objOle.connecttonewobject("WeixinPayProxyLib.WeixinPay")
if intValue=0 then
ls_ver = space( 1000 )
objOle.GetVersion( ls_ver )
messagebox( '' , ls_ver )
else
messagebox( '' , intvalue )
end if

以下是接口文档:
CURL版本微信支付代理组件
包含文件
WeixinPayProxy.dll COM组建文件
Libcurl.dll 编译的libcurl
Libeay32.dll
Ssleay32.dll
Regsvr.bat 注册脚本
Unregsvr.bat 反注册脚本
使用步骤
①、安装VS2010 C++运行环境(已经安装的不安装)
②、注册COM组建
③、引入COM组建,调用

接口说明
①、GetVersion(string& strVersion),获取COM版本信息,可用于测试COM组建是否正常
输入:无
输出:版本信息

②、proxy(strParams, "", string& result) 代理访问接口
输入:
1、访问网络配置参数(xml格式)
2、需要post的业务参数
输出:
访问的结果

第一个参数说明(xml字段):
MerchantId 商户ID
AllCerPath 合并证书路径
Url 需要访问的URL(必填)
Methed 使用get还是post(默认get)
CertFilePath 证书路径
KeyFilePath 密钥路径
ProxyHost 代理host
ProxyPort 代理端口
TimeOut 请求超时时间

注意:
1、默认使用get方式进行请求,get请求时proxy方法的第二个参数将忽略
2、证书路径使用证书必须(密钥合并文件)或者(使用证书和密钥两个文件),即要填入AllCerPath参数;要么填入 CertFilePath 和 KeyFilePath两个参数,推荐第二中(文件分别为开户邮件中的apiclient_cert.pem和apiclient_key.pem,顺序不可换)
3、代理host和代理端口在需要代理时填写,不需要代理时请不要设置

一下是使用10.152.18.220:8080代理访问第一个参数样例:
<?xml version=""1.0"" encoding=""utf-8""?>
<Params>
<MerchantId>100954570</MerchantId>
<AllCerPath>C:\all.pem</AllCerPath>
<Url>https://api.mch.weixin.qq.com/secapi/pay/reverse</Url>
<Methed>post</Methed>
<ProxyHost>10.152.18.220</ProxyHost>
<ProxyPort>8080</ProxyPort>
</Params>

COM组建相关信息
1、命名空间 WeixinPayProxyLib
2、接口IWeixinPay
3、实现类WeixinPay
4、组建IDL定义(有需要UUID可以从中获取)
// WeixinPayProxy.idl : WeixinPayProxy 的 IDL 源
// 此文件将由 MIDL 工具处理以
// 产生类型库(WeixinPayProxy.tlb)和封送处理代码。
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(3FDA99AE-88E5-4514-8972-47F51B13469A),
dual,
nonextensible,
pointer_default(unique)
]
interface IWeixinPay : IDispatch{
[id(1), helpstring("代理微信支付请求")] HRESULT proxy([in] BSTR strParams, [in] BSTR strData, [out] BSTR* strOutData);
[id(2), helpstring("版本信息")] HRESULT GetVersion([out] BSTR* bstrVersion);
};
[
uuid(A1F0D55B-0CA4-4A9B-AAF9-0BF860C2961B),
version(1.0),
]
library WeixinPayProxyLib
{
importlib("stdole2.tlb");
[
uuid(6387BA60-5149-4022-817B-D3FC42E00770)
]
coclass WeixinPay
{
[default] interface IWeixinPay;
};
};
5、手动注册方法 regsvr32 WeixinPayProxy.dll,反注册方法regsvr32 /u WeixinPayProxy.dll












...全文
1610 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangss 2016-06-19
  • 打赏
  • 举报
回复
虽然我学的不是这种语言,但遇到了同样的问题。请问楼主:解决了吗?谢谢!
zh_gl2012 2015-04-12
  • 打赏
  • 举报
回复
ConnectToNewObject("WeixinPayProxy.WeixinPay.1")

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧