使用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 相关文章推荐
用javascript自动显示最后更新时间
Mar 15 Javascript
Javascript读取cookie函数代码
Oct 16 Javascript
javascript一些实用技巧小结
Mar 18 Javascript
js 文本滚动效果的实例代码
Aug 17 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
JavaScript数据结构与算法之栈与队列
Jan 29 Javascript
javascript 解决浏览器不支持的问题
Sep 24 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
Apr 13 Javascript
详解vue嵌套路由-query传递参数
May 23 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
Aug 23 Javascript
Javascript快速实现浏览器系统通知
Aug 26 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
Jul 27 Javascript
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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
如何在php中正确的使用json
2013/08/06 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
让Firefox支持event对象实现代码
2009/11/07 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
jquery实现图片预加载
2015/12/25 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Django的性能优化实现解析
2019/07/30 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
openCV提取图像中的矩形区域
2020/07/21 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
淘宝网店营销策划书
2014/01/11 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
解除劳动合同协议书
2014/04/14 职场文书
关于群众路线的心得体会
2014/11/05 职场文书