使用PBFunc在Powerbuilder中支付宝当面付款功能


Posted in Javascript onOctober 01, 2016

在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档)。

然后使用对应的私钥文件对参数进RSAWithSha1前面计算。具体代码如下:

string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"//私钥文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"//改成你的appid
ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "当面付条码支付","total_amount": "0.01"}'
ls_str ="app_id="+ls_appId
ls_str +='&biz_content='+ls_biz_content
ls_str +='&charset=utf-8'
ls_str +='&method=alipay.trade.pay'
ls_str +='&sign_type=RSA'
ls_str +='×tamp=2016-05-08 11:27:15'
ls_str +='&version=1.0'
string ls_sigStr
blob utf8R
utf8R =lnv_cryp.of_str2utf8(ls_str)
if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then
  MessageBox("提示","签名成功:"+ls_sigStr)
Else
  MessageBox("提示","签名失败")
end if
/*验证签名可以不需要调用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"//在D盘生成公钥文件pbfunclib_pub.pem
IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then
  MessageBox("提示","验证签名失败")
else
  messagebox("","验证签名成功")
End IF
//ls_str +=''
n_pbfunc_http lnv_http
lnv_http.of_clear()//清空参数
string ls_data
ls_data = "app_id="+wf_alipay_urlencode(ls_appId)
ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content)
ls_data += "&charset="+wf_alipay_urlencode("utf-8")
ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay")
ls_data += "&sign_type="+wf_alipay_urlencode("RSA")
ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr)
ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15")
ls_data += "&version="+wf_alipay_urlencode("1.0")
lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data)
Blob lblb_data
string ls_error
IF lnv_http.of_post(lblb_data,ls_error) Then
  string gbkData
  gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回来的是utf-8编码,直接显示会乱码
  MessageBox("提示",gbkData+" "+string(lblb_data))
Else
  MessageBox("提示","执行失败")
End IF

其中wf_alipay_urlencode函数代码如下:

//ls_str为参数
n_pbfunc_encode lnv_encode
string ls_content,ls_reserved//指明不需要编码的字符
ls_reserved =""//都需要编码
string ls_sigStr
blob utf8R
utf8R =lnv_encode.of_str2utf8(ls_str)
lnv_encode.of_URIEncode2(utf8R,ls_content)
return ls_content

以上所述是小编给大家介绍的使用PBFunc在Powerbuilder中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

Javascript 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
js跨域问题之跨域iframe自适应大小实现代码
Jul 17 Javascript
6个DIV 135或246间隔一秒轮番显示效果
Jul 24 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
Jan 24 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
Mar 27 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
jQuery中animate动画第二次点击事件没反应
May 07 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
node使用request请求的方法
Dec 20 Javascript
node 版本切换的实现
Feb 02 Javascript
jQuery实现增删改查
Dec 22 jQuery
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
You might like
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
PHP file_exists问题杂谈
2012/05/07 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
js 对象是否存在判断
2009/07/15 Javascript
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
javascript用rem来做响应式开发
2018/01/13 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
入党转预备思想汇报
2014/01/07 职场文书
工程专业应届生求职信
2014/02/19 职场文书
生物制药专业求职信
2014/03/11 职场文书
选秀节目策划方案
2014/06/06 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android